1. 程式人生 > >Day1 Toast/Menu/Intent傳遞資料

Day1 Toast/Menu/Intent傳遞資料

今天是我讀《第二行程式碼》的第一天,也是我第一次開始寫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();
}