[英]how to know which button is clicked in other activity
我有两个活动, Activity 1
和Activity 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.