android – 如何从AlertDialog中的EditText中检索值?

android – 如何从AlertDialog中的EditText中检索值?,第1张

概述选中后,上下文菜单选项会显示AlertDialog.我希望用户在AlertDialog中的EditText中输入文本,当用户按下PositiveButton时,EditText的值可以“返回”到main方法.这是我班上的相关代码: public class PassPlay extends ListActivity { public static final int PENALTY_ID 选中后,上下文菜单选项会显示AlertDialog.我希望用户在AlertDialog中的EditText中输入文本,当用户按下Positivebutton时,EditText的值可以“返回”到main方法.这是我班上的相关代码:

public class Passplay extends ListActivity {    public static final int PENALTY_ID = Menu.FirsT+1;    public static final int FUMBLE_ID = Menu.FirsT+2;    public static final int ADDLYDS_ID = Menu.FirsT+3;    public static final int SAFETY_ID = Menu.FirsT+4;    EditText ydsFromAlertDialog;    String penYdsstr;    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.passplay);        ydsFromAlertDialog=(EditText)findVIEwByID(R.ID.passYdsLabel);        registerForContextMenu(getListVIEw());    }    public boolean onCreateOptionsMenu(Menu menu) {        populateMenu(menu);        return(super.onCreateOptionsMenu(menu));    }    public boolean onoptionsItemSelected(MenuItem item) {        return(applyMenuChoice(item) || super.onoptionsItemSelected(item));    }    public boolean onContextItemSelected(MenuItem item) {        return(applyMenuChoice(item) || super.onContextItemSelected(item));    }    private voID populateMenu(Menu menu) {        menu.add(Menu.NONE,PENALTY_ID,Menu.NONE,"Penalty");        menu.add(Menu.NONE,FUMBLE_ID,"Fumble");        menu.add(Menu.NONE,ADDLYDS_ID,"Additional Yards");        menu.add(Menu.NONE,SAFETY_ID,"Safety");    }    private boolean applyMenuChoice(MenuItem item) {        LayoutInflater factory = LayoutInflater.from(this);        final VIEw textEntryVIEw;        switch (item.getItemID()) {        case PENALTY_ID:            textEntryVIEw = factory.inflate(R.layout.textdialog,null);            new AlertDialog.Builder(this)            .setVIEw(textEntryVIEw)            .setIcon(androID.R.drawable.ic_dialog_alert)            .setTitle(R.string.timeout)            .setPositivebutton(R.string.offense,new DialogInterface.OnClickListener() {                @OverrIDe                public voID onClick(DialogInterface dialog,int which) {                    //Actions for offensive timeout                    EditText penaltyYds=(EditText)findVIEwByID(R.ID.ydsAssessedLabel);                    penYdsstr = penaltyYds.getText().toString();                    ydsFromAlertDialog.setText(penYdsstr);                }            })            .setNeutralbutton(R.string.defense,int which) {                    //Actions for defensive timeout                  }            })            .setNegativebutton(R.string.cancel,null)            .show();            return true;        case FUMBLE_ID:            //Fumble window            return true;        case ADDLYDS_ID:            //Additional Yards window            return true;        case SAFETY_ID:            //Safety window            return true;        }        return(false);    }}

主要的XML布局(passplay.xml)有你的普通TextVIEws,EditTexts,CheckBoxes等.我想设置其中一个EditTexts(ydsFromAlertDialog)来赋予在AlertDialog(EditText penaltyYds)中输入的值. AlertDialog的XML布局(textdialog.xml)非常简单,只有一个TextVIEw和一个EditText.

当我运行该程序时,以下行错误“应用程序已意外停止”.

penYdsstr = penaltyYds.getText().toString();

总而言之,我想按菜单选项“Penalty”,使用带有EditText的AlertDialog输入一个数字,当我按下Positivebutton时,EditText ydsFromAlertDialog的值将更改为在Dialog中输入的值.

实际上,我有一个包含5列的数据库表,其中4列将由普通字段填充,但第5列将填充在对话框中输入的值.我想如果我可以“返回”它“与”剩下的值,我将能够将其保存到与其他值相同的表记录中.

如果您需要更多信息,请与我们联系.谢谢!

解决方法 你必须从你膨胀的视图中获取ydsAssessedLabel

EditText penaltyYds=(EditText)textEntryVIEw.findVIEwByID(R.ID.ydsAssessedLabel);
总结

以上是内存溢出为你收集整理的android – 如何从AlertDialog中的EditText中检索值?全部内容,希望文章能够帮你解决android – 如何从AlertDialog中的EditText中检索值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存