一般的控件添加都是如下几步:1. 新建一个android项目
2. 在androidmanifest.xml文件里注册一个activity(默认已经注册了一个activity)
3. 在相应的activity的布局文件中添加控件,并在R.java文件中注册相应的ID,以便引用
4. 在activity的相应java文件中调用findViewById()方法通过ID应用相应的控件
5. 为相应的控件设置相应的的事件监听器,比如调用button的setOnclickListener()方法,用来相应button的单击事件或者其他的监听器;
以下是一个控件演示demo:
![](https://img-my.csdn.net/uploads/201304/12/1365697037_4573.png)
![](https://img-my.csdn.net/uploads/201304/12/1365697057_5519.png)
![](https://img-my.csdn.net/uploads/201304/12/1365697037_4573.png)
![](https://img-my.csdn.net/uploads/201304/12/1365697027_2064.png)
![](https://img-my.csdn.net/uploads/201304/12/1365697343_7410.jpg)
要将此图片放到资源文件夹中的比如drawable-hdpi文件夹中,还要改名字为photo.jpg
首页activity有几个按钮,点击第一个按钮跳转到第二个activity,首页有菜单选项,也分别设置了监听器
第二个按钮是普通按钮,没有设置监听器,
第三个按钮是一个跳转按钮,跳转到发送消息的activity
第四个控件是一个imagebutton,用onclicklistener()函数设置了监听器,当点击的时候会通过intent-filter对系统中的activity进行筛选,通过唯一的动作标示符MediaStore.ACTION_IMAGE_CAPTURE匹配到android系统的照相机,从而调用系统的照相机程序;
第五个控件是两个checkbox,作为演示只为第一个checkbox设置了监听器,用
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {});
为它设置了监听器,当他的勾选状态改变的时候会在下方的一个textview里提示
第五个控件是一个radiobutton组,同样的作为演示,与checkbox一样只有第一个radiobutton有监听器。
第二个activity中首先有一个Spinner,没有设置监听器;
接下来再有一个listview,为listview的子项设置了监听器,当点击的时候会在下方的textview中将点击子项的ID,位置等等信息打印出来
第三个activity中有一个edittext以及一个按钮,在edittext中输入所要发的内容,点击按钮则会看到下方的广播消息,
在AndroidManifest.xml中注册了以上三个activity以及一个receiver,receiver用来接收我们的广播消息,intent过滤器保证了正确筛选;
以下是代码:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textview1" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button3" />
<ImageButton
android:id="@+id/imagebutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/checkbox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/checkbox1" />
<CheckBox
android:id="@+id/checkbox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/checkbox2" />
<RadioGroup
android:id="@+id/radiogroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radiobutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radiobutton1" >
</RadioButton>
<RadioButton
android:id="@+id/radiobutton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radiobutton2" >
</RadioButton>
<RadioButton
android:id="@+id/radiobutton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radiobutton3" >
</RadioButton>
</RadioGroup>
<TextView
android:id="@+id/itemtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textview1" />
</LinearLayout>
activity_other.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textview2"
/>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textarea"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
broadcast_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/send_broadcast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send_broadcast" />
</LinearLayout>
MainActivity.java
package com.example.demo;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.TextView;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mybutton=(Button)findViewById(R.id.button);
ImageButton imagebutton=(ImageButton)findViewById(R.id.imagebutton1);
CheckBox checkbox1=(CheckBox)findViewById(R.id.checkbox1);
CheckBox checkbox2=(CheckBox)findViewById(R.id.checkbox2);
RadioButton radiobutton1=(RadioButton)findViewById(R.id.radiobutton1);
RadioButton radiobutto2=(RadioButton)findViewById(R.id.radiobutton2);
Button to_broad_button=(Button)findViewById(R.id.button3);
imagebutton.setImageResource(R.drawable.photo);
imagebutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
});
OnClickListener myonclick = null;
myοnclick=new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,other.class);
startActivity(intent);
}
};
mybutton.setOnClickListener(myonclick);
checkbox1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
}
});
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
TextView itemtext = (TextView) findViewById(R.id.itemtext);
if(arg1){
itemtext.setText("我被选中了!id:"+arg0.getId());
}
else {
itemtext.setText("我被取消钩钩了!id:"+arg0.getId());
}
}
});
radiobutton1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
TextView itemtext = (TextView) findViewById(R.id.itemtext);
if(isChecked){
itemtext.setText("我被选中了!id:"+buttonView.getId());
}
else {
itemtext.setText("我被取消点点了!id:"+buttonView.getId());
}
}});
to_broad_button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent1=new Intent(MainActivity.this,broadcastactivity.class);
Log.v("haha", "haha");
startActivity(intent1);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
TextView itemtext = (TextView) findViewById(R.id.itemtext);
switch (item.getItemId()) {
case R.id.action_settings:
itemtext.setText("你想要设置!");
return true;
case R.id.action_mail:
itemtext.setText("你想要发送邮件!");
return true;
case R.id.action_print:
itemtext.setText("你想要打印!");
return true;
case R.id.action_getread:
itemtext.setText("你想要订阅!");
return true;
case R.id.action_settings1:
itemtext.setText("我是一个子菜单!");
default:
return false;
}
}
}
otherjava
package com.example.demo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
public class other extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
Spinner spinner=(Spinner)findViewById(R.id.spinner);
final TextView textarea=(TextView)findViewById(R.id.textarea);
List<String>list=new ArrayList<String>();
list.add("Spinner子项1");
list.add("Spinner子项2");
list.add("Spinner子项3");
list.add("Spinner子项4");
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
ListView listview=(ListView)findViewById(R.id.listview);
list.clear();
list.add("listview子项1");
list.add("listview子项2");
list.add("listview子项3");
list.add("listview子项4");
ArrayAdapter<String>listviewadapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
listview.setAdapter(listviewadapter);
AdapterView.OnItemClickListener listviewListener=new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String msg="父view:"+arg0.toString()+"\n"+"子view:"+arg1.toString()+"\n"+"位置:"+String.valueOf(arg2)+"\n"+"ID:"+String.valueOf(arg3);
textarea.setText(msg);
}
};
listview.setOnItemClickListener(listviewListener); //绑定监听器
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu); //获取menu对象
return true;
}
}
broadcastactivity.java
package com.example.demo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class broadcastactivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.broadcast_activity);
Button sendbroadcast=(Button)findViewById(R.id.send_broadcast);
final EditText content_to_send=(EditText)findViewById(R.id.edittext);
sendbroadcast.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String unique_string="xiaolin";
Intent intent=new Intent(unique_string);
intent.putExtra("message", content_to_send.getText().toString());
sendBroadcast(intent); //调用函数发送广播消息
}
});
}
}
broadcast.java
package com.example.demo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class broadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String msg=intent.getStringExtra("message"); //获得传过来的intent的数据
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); //发送消息
}
}