刚学习android,未免遗忘所以写点小笔记。
1. android的布局是通过 setContentView(R.layout.main)加载的,其中main是android的默认布局文件,在res/layout/main.xml处,当然,我们可以书写自己的布局文件,起不同的名字,定义不同的布局策略(默认是线性布局)。
2. Activity类有一个方法findViewById(" ")可以查找到布局文件中定义的试图组件,前提是已经给改视图定义了id。定义id的方法android:id="@+id/idname"。这样,android会自动在R.java文件中创建一个名叫id的静态内部类,然后定义一个属性idname。
3. Button的点击事件名字叫:setOnClickListener。使用方法如下:
Button user = (Button)this.findViewById(R.id.username);
user.setOnClickListener(new View.OnClickListener(){})
4. Toast的使用。
(1):如果显示简单的文字就可以这么用Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();这个默认显示在下边靠中间的位置
(2):如果想自定义显示位置,可以这么写:
Toast toast = Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG);
toast.setGravity(Gravity.AXIS_PULL_AFTER, 0, 0);
toast.show();
setGravity的第一个参数表示显示位置,Gravity提供了很多可供选择的位置,后两个参数表示在X和Y轴的偏移量
(3):自定义Toast。如果我们所显示的内容不仅仅不限于文字,假如还有图片的话,那我们就得自定义了
LayoutInflater inflater = FirstAndroidActivity.this.getLayoutInflater();
View layout = inflater.inflate(R.layout.customer,(ViewGroup) findViewById(R.id.llToast),true);
ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
Toast tst = new Toast(FirstAndroidActivity.this.getApplicationContext());
tst.setView(layout);
tst.show();
上面的代码虽然很多,但主要的就两句
LayoutInflater inflater = FirstAndroidActivity.this.getLayoutInflater();
View layout = inflater.inflate(R.layout.customer,(ViewGroup) findViewById(R.id.llToast),true);
这两句的意思是先获得一个布局对象,然后向布局对象里添加一个布局。这个布局将专门给toast使用。tst.setView (layout)就是表明该toast使用了该布局。
这两句之后的那一段代码是给TextView添加文字,和给ImageView添加图片,而这些完全可以在定义布局的时候直接给写上。由于这段代码我也是复制了别人的,所以我也原版粘贴出来,不过刚开始也把我吓了一跳。
为了使一组按钮或其他控件使用同一个点击事件,我们可以这么写代码:
OnClickListener listener = new OnClickListener(){
public void onClick(View v) {
setTitle("I love"+((Button)v).getText());
}
};
Button girl = (Button)this.findViewById(R.id.girl);
girl.setOnClickListener(listener);