[英]How to get information about a button click on 1st activity and use it in the 3rd activity? - android
嗯,有3個活動,分別是Act1 , Act2和Act3 。
在Act1中 ,有三個按鈕,分別是But1 , But2和But3 。
如果單擊三個三個按鈕中的任何一個,它將最終顯示Act2 。
在Act2中 ,只有一個按鈕說完成 。
我的問題是,當我在ACT2 完成按鈕單擊我應該得到哪些被點擊ACT1顯示ACT2在ACT3一個TextView按鈕的信息。
我想我已經說清楚了..
我只需要知道如何將Act1中的按鈕單擊信息傳遞給Act3
我應該使用捆綁包還是其他東西? 請幫我弄清楚邏輯,如果可能的話還提供示例代碼? :)
您有幾種選擇。
1)Hardcore選項將是創建一個數據庫並保存/查詢信息。
2)您也可以寫入sharedPreferences。 SharedPrefExample
3)如評論中所述,如果您僅從一種活動到另一種活動進行交談,則只需intent.putExtra(“ key”,value)
4)最后,您可以擴展Application這是一篇有關全局變量的好文章。 如何在Android中聲明全局變量?
嘗試使用意圖
public void onClick(View arg0) {
Bundle bundle = new Bundle();
bundle.putInt("BtnAID", ID);
Intent It = new Intent();
It.setClass(A.this, B.class);
It.putExtras(bundle);
startActivity(It);
}
您可以使用SharedPreferences
存儲按下的按鈕。
SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
Editor prefsEditor = appSharedPrefs.edit();
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
prefsEditor.putString("buttonPressed", "Button1");
prefsEditor.commit();
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
prefsEditor.putString("buttonPressed", "Button2");
prefsEditor.commit();
}
});
Button b3 = (Button) findViewById(R.id.button3);
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
prefsEditor.putString("buttonPressed", "Button3");
prefsEditor.commit();
}
});
在您要獲取按下哪個按鈕的Activity
中:
SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
String whichButton = appSharedPrefs.getString("buttonPressed", "");
if(whichButton.equals("Button1")
//do something
if(whichButton.equals("Button2")
//do something
if(whichButton.equals("Button3")
//do something
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.