Android 通过对话框发送信息
我想通过和intent.put将额外的int传递给另一个活动。我在一个对话框中,该对话框位于主类的菜单中。我的问题是,我怎么做,因为我不知道放在哪里或怎么放。这是我的代码:Android 通过对话框发送信息,android,android-intent,progressdialog,Android,Android Intent,Progressdialog,我想通过和intent.put将额外的int传递给另一个活动。我在一个对话框中,该对话框位于主类的菜单中。我的问题是,我怎么做,因为我不知道放在哪里或怎么放。这是我的代码: public boolean onOptionsItemSelected(MenuItem item){ int id = item.getItemId(); if(id == R.id.numero_ejercicios_settings){ dialogSpinner();
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
if(id == R.id.numero_ejercicios_settings){
dialogSpinner();
Intent i = getIntent();
i.putExtra(Constantes.NUMERO_TOTAL, numero_total);
return true;
}
return super.onOptionsItemSelected(item);
}
public void dialogSpinner(){
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle("Example");
String[] types = {"5", "10"};
b.setItems(types, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
switch(which){
case 0:
numero_total = 10;
break;
case 1:
numero_total = 10;
break;
}
}
});
b.show();
}
您可以这样尝试:
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
if(id == R.id.numero_ejercicios_settings){
dialogSpinner();
return true;
}
return super.onOptionsItemSelected(item);
}
public void dialogSpinner(){
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle("Example");
String[] types = {"5", "10"};
b.setItems(types, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
numero_total = 10;
break;
case 1:
numero_total = 10;
break;
}
dialog.dismiss();
Intent intent = new Intent(this, NameOfActivityToStart.class);
intent.putExtra(Constantes.NUMERO_TOTAL, numero_total);
startActivity(intent);
}
});
b.show();
}
注意我使用了newintent()
。如果使用getIntent()
u,基本上会再次启动相同的活动。最终定义它
final Intent intent = new Intent()
然后你可以多放一点。但是你不能再次初始化@Pavneet_Singh你所说的错误是什么意思?你想让他开始和现在一样的活动吗?直接设置int不是更容易吗?我不想开始新的活动。只是路过data@DavidLamasJimenez那么为什么你不给你的活动一个
setnumeriototal
方法呢。为什么在活动的目的中需要您的信息?@Pavneet_Singh当然没有ActivityToStart.class的名称。只是想作为占位符。。。但事实证明,OP其实并不需要启动Activitys@Pavneet_SinghOP应该在对话框的clicklistener中读取他只是想要的intent.putExtra,他可以使用开关大小写更改该值。顺便说一句,这是非常好的礼貌,给予否决票,它鼓励人们帮助这个社区。你从哪里知道OP想要什么?你为什么要把你的新意图()
定下来?你的回答并不能解决任何问题。如果他只是想把intentExtra放进去,为什么他不应该只使用getIntent()
?看看你的回答显然没有解决任何问题