您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細(xì)介紹了resultCode返回碼和onclick代碼重構(gòu)的實現(xiàn),文中示例代碼介紹的非常詳細(xì),零基礎(chǔ)也能參考此文章,感興趣的小伙伴們可以參考一下。
主頁:
public class MainActivity extends Activity { /** * 主頁點擊按鈕跳轉(zhuǎn)到第二頁 * 第二頁點擊按鈕1將字符串內(nèi)容顯示到主頁,點擊按鈕2將數(shù)字內(nèi)容顯示到主頁 */ private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); TextView textView = (TextView) findViewById(R.id.textView1_main); String text = null; switch (resultCode)//判斷返回碼 { case RESULT_CODE_ONE: text = "from按鈕1:" + data.getStringExtra("btnone"); break; case RESULT_CODE_TWO: int age = data.getIntExtra("btntwo", 0);//0為默認(rèn)值,當(dāng)data沒有接收到返回的int時,返回這個默認(rèn)值 text ="from按鈕2:"+ String.valueOf(age); break; default: break; } textView.setText(text); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1_main).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent , 0); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
第二頁
public class SecondActivity extends Activity { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); final Intent data = new Intent(); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { data.putExtra("btnone", "name"); setResult(RESULT_CODE_ONE, data );//設(shè)置返回碼 finish(); } }); findViewById(R.id.button2).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { data.putExtra("btntwo", 12); setResult(RESULT_CODE_TWO, data );//設(shè)置返回碼 finish(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
第二頁按鈕事件重構(gòu)過程一:
1.實現(xiàn)OnClickListener接口
2.重寫onClick(View v)
3.findViewById(R.id.button1).setOnClickListener(this)
public class SecondActivity extends Activity implements OnClickListener//實現(xiàn)監(jiān)聽者接口 { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override public void onClick(View v)//重寫點擊方法 { Intent data = new Intent(); if(v.getId() == R.id.button1)//判斷view的id { data.putExtra("btnone", "name"); setResult(RESULT_CODE_ONE, data ); finish(); } if(v.getId() == R.id.button2) { data.putExtra("btntwo", 12); setResult(RESULT_CODE_TWO, data ); finish(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); findViewById(R.id.button1).setOnClickListener(this);//監(jiān)聽按鈕 findViewById(R.id.button2).setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
第二頁按鈕事件重構(gòu)過程二:將事件內(nèi)容以方法代替
public class SecondActivity extends Activity implements OnClickListener//實現(xiàn)監(jiān)聽者接口 { private final static int RESULT_CODE_ONE = 1; private final static int RESULT_CODE_TWO = 2; @Override public void onClick(View v)//重寫點擊方法 { Intent data = new Intent(); if(v.getId() == R.id.button1)//判斷view的id { // data.putExtra("btnone", "name"); // setResult(RESULT_CODE_ONE, data ); // finish(); sendResult("btnone", "name", RESULT_CODE_ONE); } if(v.getId() == R.id.button2) { // data.putExtra("btntwo", 12); // setResult(RESULT_CODE_TWO, data ); // finish(); sendResult("btntwo", Integer.valueOf(12), RESULT_CODE_TWO); } } private void sendResult(String extraKey, Object content, int resultCode) { Intent data = new Intent(); if (content instanceof String) { data.putExtra(extraKey, (String) content); } else if (content instanceof Integer) { data.putExtra(extraKey, (Integer) content); } setResult(resultCode, data); finish(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); findViewById(R.id.button1).setOnClickListener(this);//監(jiān)聽按鈕 findViewById(R.id.button2).setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.second, menu); return true; } }
以上就是resultCode返回碼和onclick代碼重構(gòu)的代碼,如果在日常工作遇到這個問題,希望你能通過這篇文章解決問題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。