Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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
Android 通过对话框发送信息_Android_Android Intent_Progressdialog - Fatal编程技术网

Android 通过对话框发送信息

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();

我想通过和intent.put将额外的int传递给另一个活动。我在一个对话框中,该对话框位于主类的菜单中。我的问题是,我怎么做,因为我不知道放在哪里或怎么放。这是我的代码:

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()
?看看你的回答显然没有解决任何问题