繁体   English   中英

从Android中的AlertDialog返回/保存值?

[英]Return/save values from AlertDialog in Android?

因此,我在Android活动中获得了AlertDialog的代码,尽管它可以在正确的时间弹出并弹出,但是当我按下“ OK”按钮时,它应该将我输入的2个变量保存为2个活动后应该能够使用这些字符串的字符串。

private void showDialog(){
AlertDialog.Builder alertdg = new AlertDialog.Builder(this); 
alertdg.setTitle("Choose page");
alertdg.setMessage("Choose episode/page");

final EditText page = new EditText(this); 
final EditText episode = new EditText(this); 
page.setWidth(210); 
episode.setWidth(210); 

LinearLayout layout = new LinearLayout(this); 

layout.addView(episode); 
layout.addView(page); 
alertdg.setView(layout); 

alertdg.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        episodeString = episode.getText().toString();
        pageString = page.getText().toString(); 
    }
});

alertdg.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub

    }
});
alertdg.show(); 
}

是的,如果您想知道我已经在活动开始的某个地方声明了两个字符串“ episodeString”和“ pageString”,并且知道我正确地声明了它们。 现在我想知道的是,为什么我不能返回这些值,以便活动的其余部分可以使用它们? 我已经尝试了很多次,但是对话框不会返回/保存值...我在做什么错?

您编码绝对有效

package pete.android.study;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity{

    private String mEpisode = "";
    private String mPage = "";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        showDialog();

    }

    private void showDialog(){
        AlertDialog.Builder alertdg = new AlertDialog.Builder(this); 
        alertdg.setTitle("Choose page");
        alertdg.setMessage("Choose episode/page");

        final EditText page = new EditText(this); 
        final EditText episode = new EditText(this); 
        page.setWidth(210); 
        episode.setWidth(210); 

        LinearLayout layout = new LinearLayout(this); 

        layout.addView(episode); 
        layout.addView(page); 
        alertdg.setView(layout); 

        alertdg.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                mEpisode = episode.getText().toString();
                mPage = page.getText().toString(); 

                Toast.makeText(MainActivity.this, mEpisode + " | " + mPage,  Toast.LENGTH_SHORT).show();
            }
        });

        alertdg.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub

            }
        });
        alertdg.show();


    }


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM