Day1 Toast/Menu/Intent傳遞資料
阿新 • • 發佈:2019-02-15
今天是我讀《第二行程式碼》的第一天,也是我第一次開始寫CSDN部落格,之前的筆記都在OneNote上,後來發現OneNote沒有程式碼段功能,不能滿足需求。同時發現CSDN部落格環境挺友好的,在考慮要不要把筆記都複製上來呢。
在活動中使用Toast
protected void onCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(newView.OnClickListener(){
@Override
public void onClick(Viewv){
Toast.makeText(FirstActivity.this,"Fuckyou",Toast.LENGTH_SHORT).show();
Intentintent = newIntent("com.example.activitytest.ACTION_START");
//呼叫startActivity方法的時候會自動將android.intent.category.DEFAULT新增到Intent中
startActivity(intent);
}
});
}
在活動中使用Menu
@Override
public boolean onCreateOptionsMenu(Menu menu){
//建立選單,傳入R.menu.main佈局檔案,第二個引數用於指定選單項將新增到哪一個Menu物件中,這裡直接使用onCreateOptionsMenu方法中傳入的menu引數
getMenuInflater().inflate(R.menu.main, menu);
//返回true表示允許建立的選單顯示出來,返回false則無法顯示
return true;
}
@Override
public boolean onOptionsItemSelected (MenuItem item){
//通過getItemID()來判斷點選的是哪一個選單項
switch(item.getItemId()){
case R.id.add_item:
Toast.makeText(this, "YouclickedAdd", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "Sorry,you can't remove anything cause' you're stupid!", Toast.LENGTH_LONG).show();
break;
default:
}
return true;
}
使用Intent在活動之間穿梭
在FirstActivity中:
(建立活動)
Intent intent= new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("extra_data",data);
startActivityForResult(intent,1);
(對return做出響應)
@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:
}
}
在SecondActivity中:
(接收資料)
Intent input=getIntent();
String data=input.getStringExtra("extra_data");
(返回資料到上一級)
Intent intent = new Intent();
intent.putExtra("data_return","Fuck you too FirstActivity");
setResult(RESULT_OK,intent);
finish();
(如果不是通過點選按鈕,而是通過按下Back鍵回到FirstActivity,則重寫onBackPressed()方法)
public void onBackPressed(){
Intent intent = new Intent();
intent.putExtra("data_return","Fuck you First Activity I'm BACK!");
setResult(RESULT_OK,intent);
finish();
}