[英]How to check which button was pressed in startActivityForResult, override onActivityResult method?
I have three button (R.id.1, R.id.2, R.id.3) and three textView(a,b,c). 我有三个按钮(R.id.1,R.id.2,R.id.3)和三个textView(a,b,c)。 How can I check which button was pressed onActivityResult so that the TextView can be setText accordingly to the button?
如何检查onActivityResult上按下的按钮,以便可以相应于按钮将TextView设置为setText?
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode)
{
case 0:
//check which button was pressed
String b = data.getStringExtra("a");
//Apply setText(b);
}
break;
case 1:
//check which button was pressed
String result1=data.getStringExtra("text");
// Apply setText(result);
break;
case 2:
// check which button was pressed
String b2 = data.getStringExtra("a");
// Apply setText (b2);
break;
Example: In case 0, R.id.1 was pressed, so will be a.setText(b).... 示例:如果情况为0,则按下R.id.1,因此将为a.setText(b)....
If R.id.1 was pressed, a.setText()
If R.id.2 was pressed, b.setText()
If R.id.3 was pressed, c.setText()
Code 码
Button button1 = (Button) claims.findViewById(R.id.1);
Button button2 = (Button) claims.findViewById(R.id.2);
Button button3 = (Button)claims.findViewById(R.id.3);
a=(TextView)claims.findViewById(R.id.textView1);
b=(TextView)claims.findViewById(R.id.textView2);
c=(TextView)claims.findViewById(R.id.textView3);
button1.setOnClickListener(listener);
button2.setOnClickListener(listener);
button3.setOnClickListener(listener);
View.OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
AlertDialogRadio();
}
};
public void AlertDialogRadio() {
final CharSequence[] ClaimsModel = {"Sunny", "Raining", "Cloudy"};
AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
alt_bld.setTitle("Select Weather");
alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(getActivity().getApplicationContext(), Sunny.class);
startActivityForResult(intent, 0);
} else if (item == 1) {
Intent intent = new Intent(getActivity().getApplicationContext(), Rainy.class);
startActivityForResult(intent, 1);
} else if (item == 2) {
Intent intent = new Intent(getActivity().getApplicationContext(), Cloudy.class);
startActivityForResult(intent, 2);
}
}
dialog.dismiss();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode)
{
case 0:
//check which button was pressed
String b = data.getStringExtra("a");
//Apply setText(b);
}
break;
case 1:
//check which button was pressed
String result1=data.getStringExtra("text");
// Apply setText(result);
break;
case 2:
// check which button was pressed
String b2 = data.getStringExtra("a");
// Apply setText (b2);
break;
}
Edited 已编辑
AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
alt_bld.setTitle("Select a Claims");
alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(getActivity().getApplicationContext(), Project1.class);
startActivityForResult(intent, requestCode);
} else if (item == 1) {
Intent intent = new Intent(getActivity().getApplicationContext(), Petrol.class);
startActivityForResult(intent, requestCode);
} else if (item == 2) {
Intent intent = new Intent(getActivity().getApplicationContext(), CarMainten.class);
startActivityForResult(intent, requestCode);
} else if (item == 3) {
Intent intent = new Intent(getActivity().getApplicationContext(), Medical.class);
startActivityForResult(intent, requestCode);
} else if (item == 4) {
Intent intent = new Intent(getActivity().getApplicationContext(), Other.class);
startActivityForResult(intent, requestCode);
}
dialog.dismiss();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Toast.makeText(getActivity(), "Not coeted ", Toast.LENGTH_LONG).show();
switch (requestCode) {
case requestCode1:
String result = data.getStringExtra("text");
String b = data.getStringExtra("a");
c.setText(" " + b + "------" + "RM " + result);
Toast.makeText(getActivity(), "Not completed ", Toast.LENGTH_LONG).show();
break;
case requestCode2:
String result1 = data.getStringExtra("text");
String b1 = data.getStringExtra("a");
c.setText(" " + b1 + "------" + "RM " + result1);
break;
case requestCode3:
String result2 = data.getStringExtra("text");
String b2 = data.getStringExtra("a");
c.setText(" " + b2 + "------" + "RM " + result2);
break;
}
}
int requestCode1 = 1;
int requestCode2 = 2;
int requestCode3 = 3;
Button b1 =(Button) findViewById(R.id.button1);
Button b2 =(Button) findViewById(R.id.button2);
Button b3 =(Button) findViewById(R.id.button3);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialogRadio(requestCode1)
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialogRadio(requestCode2)
}
});
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialogRadio(requestCode3)
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == requestCode1){}//button 1
else if(resultCode == requestCode2){}//button 2
else if(resultCode == requestCode3){}//button 3
}
public void AlertDialogRadio(final int requestCode) {
final CharSequence[] ClaimsModel = {"Sunny", "Raining", "Cloudy"};
AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
alt_bld.setTitle("Select Weather");
alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(getActivity().getApplicationContext(), Sunny.class);
startActivityForResult(intent, requestCode);
} else if (item == 1) {
Intent intent = new Intent(getActivity().getApplicationContext(), Rainy.class);
startActivityForResult(intent, requestCode);
} else if (item == 2) {
Intent intent = new Intent(getActivity().getApplicationContext(), Cloudy.class);
startActivityForResult(intent, requestCode);
}
}
dialog.dismiss();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
you can check with Request Code. 您可以检查请求代码。
View.OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
AlertDialogRadio(v.getId());
}
};
public void AlertDialogRadio(int id) {
final CharSequence[] ClaimsModel = {"Sunny", "Raining", "Cloudy"};
switch(id){
case R.id.1:
break;
case R.id.2:
break;
case R.id.3:
break;
}
Bundle bundle = new Bundle();
bundle.putString("key", "value");
AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
alt_bld.setTitle("Select Weather");
alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(getActivity().getApplicationContext(), Sunny.class);
startActivityForResult(intent, 0, bundle);
} else if (item == 1) {
Intent intent = new Intent(getActivity().getApplicationContext(), Rainy.class);
startActivityForResult(intent, 1, bundle);
} else if (item == 2) {
Intent intent = new Intent(getActivity().getApplicationContext(), Cloudy.class);
startActivityForResult(intent, 2, bundle);
}
}
dialog.dismiss();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Bundle bundle = data.getExtras();
// this can any data that you passed
String anyData = bundle.getString();
switch(requestCode)
{
case 0:
//check which button was pressed
String b = data.getStringExtra("a");
//Apply setText(b);
}
break;
case 1:
//check which button was pressed
String result1=data.getStringExtra("text");
// Apply setText(result);
break;
case 2:
// check which button was pressed
String b2 = data.getStringExtra("a");
// Apply setText (b2);
break;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.