这学期正式开始学习android,在十一及本周学习了《android第一行代码》的前三章,进度稍快,在此写几篇博客回忆所学,加深记忆!
Toast的用法
protected void onCreate(Bundle savedIntanceState){
super.onCreate(savedIntanceState);
//传入布局
setContentView(R.layout.first_layout);
//获取布局文件中定义的元素,将返回的View对象向下转型Button,实例化button。
Button button1=(Button)findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener(){
//注册监听器,点击按钮时执行onClick()方法
@Override
public void onClick(View v){
//makeText()需要传递3个参数,第一个是Context对象,第二个是Toast显示的文本内容,第三个是显示时长
Toast.makeText(FirstActivity.this,
"You click Button1",Toast.LENGTH_SHORT).show();
}
});
}
Menu的用法
首先在layout中完成布局设置,然后可用Ctrl O重写相关方法
public boolean onCreateOptionsMenu(Menu menu){
//inflate()方法接受两个参数,第一个是创建菜单的资源文件,第二个是所添加的menu对象
getMenuInflater().inflate(R.Menu.main,menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.item_1:
Toast.makeText(this,
"You click item_1",Toast.LENGTH_SHORT).show();
break;
case R.id.item_2:
Toast.makeText(this,
"You click item_1",Toast.LENGTH_SHORT).show();
break;
case R.id.item_n
......
break;
default:
}
return true;
}
显示Intent的用法
button1.setOnClickListener(new View.OnClickListener(){
//注册监听器,点击按钮时执行onClick()方法
@Override
public void onClick(View v){
//Intent(Context packageContent,Class<?>cls)
//Context第一个参数是启动活动的上下文,第二个是启动的活动目标
Intent intent=new Intent(Main1Activity.this ,Main2Activity.class);
startActivity(intent);
隐式Intent的用法
<intent-filter>
<action android:name="com.example.a11709.
activitytest.ACTION_START" />
<category android:name="android.intent.
category.DEFAULT" />
<category android:name="com.example.a11709.
activitytest.MY_CATEGORY" />
</intent-filter>
button1.setOnClickListener(new View.OnClickListener(){
//注册监听器,点击按钮时执行onClick()方法
@Override
public void onClick(View v){
Intent intent=new Intent("com.example.a11709.
activitytest.ACTION_START"); /*intent.addCategory("android.intent.category.
DEFAULT");默认,可不写*/
intent.addCategory("com.example.a11709.
activitytest.MY_CATEGORY");
startActicity(intent);
Intent向下一个活动传递数据
button1.setOnClickListener(new View.OnClickListener(){
//注册监听器,点击按钮时执行onClick()方法
@Override
public void onClick(View v){
String data="Hellow Main2Activity"
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
//putExtra()方法接受两个参数,第一个是键,第二个是传递的数据
intent.putExtra("extra_data",data);
startActicity(intent);
}
}
public class Main2Activity extends appCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
Intent intent=getIntent();
String data=intent.getStringExtra("extra_data");
Log.d("Main2Activity",data);
}
Intent返回给上一个数据
在MainActivity的点击事件中如下写
Intent intent =new
Intent(MainActivity.this,Main2Activity.class);
startActivityForResult(intent,1);
同时重写onActivityResult方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode){
case 1:
if(resultCode==RESULT_OK){
String returnedData=data.getStringExtra("data_return");
Log.d("FirstActivity",returnedData);
}
break;
default:
}
}
在Main2Activity方法中如下写
Button button2 = (Button) findViewById(R.id.button_2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("data_return","Hellow FirstActivity");
setResult(RESULT_OK,intent);
finish();
}
}
并且在Main2Activity中重写onBackPresed方法
@Override
public void onBackPressed(){
Intent intent = new Intent();
intent.putExtra("data_return","Hellow FirstActivity");
setResult(RESULT_OK,intent);
finish();
}