Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何知道在其他活动中单击了哪个按钮_Java_Android_Android Intent_Android Activity - Fatal编程技术网

Java 如何知道在其他活动中单击了哪个按钮

Java 如何知道在其他活动中单击了哪个按钮,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我有两个活动,活动1和活动2活动1包含8个按钮,每个按钮通过意图将一些数据发送到活动2,而活动2获取数据并显示在列表视图中。我想根据条件在listview中显示数据,因此在活动2中,我将每个按钮数据放在if块因此我的问题是我应该在if(条件?中放置什么条件,以知道在活动1我的活动1 public void hmoral(View v){ moralref.get().addOnCompleteListener(new OnCompleteListener<DocumentS

我有两个活动,
活动1
活动2
<代码>活动1包含8个按钮,每个按钮通过意图将一些数据发送到
活动2
,而
活动2
获取数据并显示在
列表视图中。我想根据条件在listview中显示数据,因此在
活动2
中,我将每个按钮数据放在
if

因此我的问题是我应该在
if(条件?
中放置什么条件,以知道在
活动1

我的
活动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);

                }

            }
        });

    }
}
如何知道在其他活动中单击了哪个按钮

使用意图将按钮id发送到下一个活动:

intent.putExtra("clicked_view_id", view.getId());
现在将
单击的\u视图\u id
与开关盒一起使用,以与按钮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");  

您有8个按钮,并且所有按钮都有不同的名称,对吗?是的,我有8个按钮,具有不同的名称,为什么默认值为zero@RahulSingh
getIntExtra
方法采用两个参数,第一个参数是key,第二个参数是默认值,用于在Intent中未找到if提供的
key
的情况。您可以在switch case中使用
default
来处理此问题condition@RahulSingh:或者您可以使用任何默认值,如
R.id.button1
来表示找不到键的情况。它工作正常,但在listview中不显示任何数据now@RahulSingh:数据不可见。其他问题。如果还有其他问题,请为此提出新问题。
 String btnClicked = getIntent().getStringArrayListExtra("btnClicked");