簡體   English   中英

如何知道在其他活動中單擊了哪個按鈕

[英]how to know which button is clicked in other activity

我有兩個活動, Activity 1Activity 2 Activity 1包含 8 個按鈕,每個按鈕通過意圖向Activity 2發送一些數據, Activity 2獲取數據並顯示在listview 我想根據條件在列表視圖中顯示數據,因此在Activity 2我將每個按鈕數據放在if塊中

所以我的問題是

我應該在if(condition?)放置什么條件才能知道在Activity 1單擊了哪個按鈕
我的Activity 1

 public void hmoral(View v){ moralref.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { @Override public void onComplete(@NonNull Task<DocumentSnapshot> task) { if (task.isSuccessful()){ List<String> moraldata = new ArrayList<>(); Map<String,Object> map = task.getResult().getData(); for (Map.Entry<String,Object> entry:map.entrySet()){ moraldata.add(entry.getKey()); Log.d(TAG,entry.getKey()); } Intent intent1 = new Intent(Activity1.this,Activity2.class); intent1.putExtra("moraldata", (Serializable) moraldata); startActivity(intent1); } } }); } public void hhorror(View v){ horrorref.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { @Override public void onComplete(@NonNull Task<DocumentSnapshot> task) { if (task.isSuccessful()){ List<String> horrordata = new ArrayList<>(); Map<String,Object> map = task.getResult().getData(); for (Map.Entry<String,Object> entry:map.entrySet()){ horrordata.add(entry.getKey()); Log.d(TAG,entry.getKey()); } Intent intent = new Intent(Activity1.this,Activity2.class); intent.putExtra("horrordata", (Serializable) horrordata); startActivity(intent); } } }); } }

Activity2代碼如下:

 public class ListAcivity extends AppCompatActivity { ListView originallist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_acivity); originallist = findViewById(R.id.originallist); if (){ ArrayList<String> morallist = getIntent().getStringArrayListExtra("moraldata"); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,morallist); originallist.setAdapter(arrayAdapter); } if (){ ArrayList<String> horrorlist = getIntent().getStringArrayListExtra("horrordata"); ArrayAdapter<String>arrayAdapter1 = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,horrorlist); originallist.setAdapter(arrayAdapter1); } }

如何知道在其他活動中單擊了哪個按鈕

使用 Intent 將 Button id 發送到下一個 Activity :

intent.putExtra("clicked_view_id", view.getId());

現在使用clicked_view_id和 switch case 來與 Button id 進行比較:

int clickedButtonID = getIntent().getIntExtra("clicked_view_id", 0);
switch(clickedButtonID){
  case R.id.button1:
   ...
   break;
  case R.id.button2:
   ... 
   break;

} 

在您的活動 1 中:

    Private  String buttonText ="";

    yourButtonClick.setOnClickListener(this);

    @Override
public void onClick(View view) {
 buttonText = getIntent().getStringExtra("btn_text");

    switch (view.getId()) {
        case R.id.button1:
            buttonText = "buttonOne";
            break;
        case R.id.button2:
            buttonText = "buttonTwo";
            break;
        case R.id.button8:
            buttonText = "buttonEight";
            break;

       }

     }

  }
 Intent intent = new Intent(Activity1.this,Activity2.class);
                    intent.putExtra("btnClicked", buttonText);
                   startActivity(intent);

// 在列表活動中

 String btnClicked = getIntent().getStringArrayListExtra("btnClicked");  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM