Coder Social home page Coder Social logo

android入门 about blog HOT 3 OPEN

cisen avatar cisen commented on August 16, 2024
android入门

from blog.

Comments (3)

cisen avatar cisen commented on August 16, 2024

遇到的问题

  1. gradle版本问题,大部分Android都依赖26api,gradle需要在4.6以下
  2. 登录问题,由于默认在模拟器上运行的是devrelease,所以需要在as的build variants下面切换到product release版本运行
  3. 蓝牙问题,由于分拣依赖蓝牙,没有蓝牙会崩溃,所以需要注释蓝牙代码
  4. 签名问题,由于dev版和product版切换,签名没切换,所以需要使用adb命令卸载程序`adb uninstall com.ircloud.yfj```
  5. 为什么activity都没有实例化?如
startActivity(Intent(this, PrintLabelStyleActivity::class.java))

通常在Intent或者加个括号就完成了实例化,实例化通常不需要自己操作
6. 如何存储登录信息?通过SharedProferences类保存,Android 平台给我们提供了SharedProferences类,这是一个轻量级的储存类,适用于保存一些小数据。SharedProferences具体用法及方法可参见http://www.android.doc.com/reference/android/content/SharedPreferences.html。
7. 如何更改包名?Android Studio如何更换包名(包括代码路径名和项目包名)
8. Please Select android SDK
File-> Project Structure->app->Compile SDK Verision->选择 对应的版本
注意:这里 对应的版本 对应的是:app模块下的 build.gradle 文件里的 compileSdkVersion
如果还不行,可能是sdk只下载了部分,需要在sdkmanager里面下载全部

from blog.

cisen avatar cisen commented on August 16, 2024

getContext和getActivity

MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;

this:表示当前对象;一般而言,在哪个类中调用,就是指向该对象。

getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。

getActivity():获得Fragment依附的Activity对象。Fragment里边的getActivity()不推荐使用原因如下:这个方法会返回当前Fragment所附加的Activity,当Fragment生命周期结束并销毁时,getActivity()返回的是null,所以在使用时要注意判断null或者捕获空指针异常。

runOnUiThread

在Android开发的过程中,主线程主要来完成UI绘制和响应用户的操作,默认情况下,我们大部分的代码都是在主线程中执行的,因此我们时刻要考虑主线程的情况。我们都知道要开启一个子线程来完成一个耗时操作,以避免阻塞主线程影响用户体验,甚至ANR。但是子线程执行完要更新UI的时候,我们又必须回到主线程来更新,实现这一功能常用的方法是执行Activity的runOnUiThread()方法:

Intent

Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。Intent这个英语单词的本意是“目的、意向、意图”。

Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。
activity、service和broadcast receiver之间是通过Intent进行通信的,而另外一个组件Content Provider本身就是一种通信机制,不需要通过Intent。

from blog.

cisen avatar cisen commented on August 16, 2024

#R文件

简介

当 Android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源的 ID,如布局文件,资源文件,图片(values下所有文件)的ID等。在写java代码需要用这些资源的时候,你可以使用 R 类,通过子类+资源名或者直接使用资源 ID 来访问资源。

R.java文件是活动的Java文件,如MainActivity.java的和资源如strings.xml之间的胶水。我们不要去修改R.java文件的内容。

在 Android Studio 中 R 文件位于 app -> build -> generated -> source -> r -> debug -> 包名 -> R

要注意几点:

  • R 文件的本质是一个 java 文件,文件为 R.java
  • 该文件其实就是一个 public final class R{} 类,该类里面包含的全是以 public static final 开头的内部类,- - 在这些内部类中全是以 public static final int 开头的属性
  • 在 Android Studio 中打开 R.java 文件,然后按 Ctrl + Shift + 减号键,可以看到 R.java 的总体内容

1.java代码中使用:

Java 文字:

txtName.setText(getResources().getText(R.string.name));

图片:

imgIcon.setBackgroundDrawableResource(R.drawable.icon);

颜色:

txtName.setTextColor(getResouces().getColor(R.color.red));

布局:

setContentView(R.layout.main);

控件:

txtName = (TextView)findViewById(R.id.txt_name);

2.XML代码中使用:

通过@xxx即可得到,比如这里获取文本和图片:

<TextViewandroid:text="@string/hello_world"  android:layout_width="wrap_content" android:layout_height="wrap_content"  android:background="@drawable/img_back"/>

from blog.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.