一、Activity、控件、布局 1.调? Toast 的 makeToast ?法显?快显消息Toast.makeText(MainActivity.this,string,Toast.LENGTH_SHORT).show();
2.约束布局的属性命名空间进?引?,均以 app 开头,?控件的对齐 xmlns:app="http://schemas.android.com/apk/res-auto" 例如:app:layout_constraintTop_toTopOf
3.AndroidManifest 配置清单?件新增 xxActivity 活动 <activity android:name=".xxActivity"></activity>
4.显式Intent ?式启动 xxActivity MainActivity.java
public static final String MESSAGE_STRING = "com.example.appdemo01.Message";
Intent intent = new Intent(MainActivity.this, xxActivity.class);
intent.putExtra(MESSAGE_STRING,s);
startActivity(intent);
xxActivity.java
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.MESSAGE_STRING);
同时可获得MainActivity的string
5.旋转时,通过 Bundle 对象的putInt()可以保存 int 型的数值,onRestoreInstanceState ?法中恢复
private static final String COUNT_VALUE = "count_value";
private int count = 0;
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
outState.putInt(COUNT_VALUE,count);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
count = savedInstanceState.getInt(COUNT_VALUE);
if (tvcount != null){
tvcount.setText(Integer.toString(count));
}
}
6.输?类型进?切换需要在 Activity 活动中增加 ImageView 控件的 OnClickListener 事件侦听器并对 EditText 控件的 inputType 属性进?设置
ivPwdSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bPwdSwitch = !bPwdSwitch;
if (bPwdSwitch){
ivPwdSwitch.setImageResource(
R.drawable.ic_cannotsee
);
etPwd.setInputType(
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
);
}else {
ivPwdSwitch.setImageResource(
R.drawable.ic_see
);
etPwd.setInputType(
InputType.TYPE_TEXT_VARIATION_PASSWORD |
InputType.TYPE_CLASS_TEXT
);
etPwd.setTypeface(Typeface.DEFAULT);
}
}
});
7.使?getResources()得 到 Resources 对象,并通过该对象的getStringArray的?法获取 arrays.xml ?件中定义的字符串数组资源。
private String[] titles = null;
private String[] authors = null;
titles = getResources().getStringArray(R.array.titles);
authors = getResources().getStringArray(R.array.authors);
8.CardView 卡?容器实际上是另类的FrameLayout(帧布局) 导入依赖:
implementation 'androidx.cardview:cardview:1.0.0'
9.布局嵌入
xxsAdapter xxsAdapter = new xxAdapter(MainActivity.this,R.layout.待加载的xml布局,xxsList);
ListView lvNewsList = findViewById(R.id.lv_news_list(被加载的xml布局));
lvNewsList.setAdapter(newsAdapter);
xxsAdapter 类的构造器需要三个参数,分别为: ? Context context,context 上下??于 NewsAdapter 类中 加载布局时使?; ? int resourceId,?于设置 ListView 每个 Item 项时的布局; ? List data,?于传递 News 对象列表; NewsAdapter 构造函数中?先调??类的构造?法,再将这三个参数保存 以便在 getView ?法中使?
public View getView(int position, View convertView, ViewGroup parent) ?于 ListView 显?某?位置 Item 时进?回调的?法。该 ?法返回值为 Item 所需要加载的 View 控件。?该?法的的三个参数含义为: ? int position,当前 Item 对应的位置; ? View convertView,针对 ListView 中缓存的不可见的 Item 的 View 对 象; ? ViewGroup parent,需要加载的 View 的?容器对象;
|