0
private EditText result = (EditText) findViewById(R.id.editText1);
final String[] dropdownList ={"a123", "b456"};

public void onCreate(...) {
    ...
    alert();
}


private void alert() {
    new AlertDialog.Builder(this)
    .setTitle("select")
    .setSingleChoiceItems(dropdownList, checkedItem, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    result.setHint("some tips");
                }
        )}.show()

EditText 结果在 layout.xml 中已经有提示,但我想更改提示

EditText 结果,但是上面的代码抛出了 NullPointerException,这是什么问题?

编辑:

public class AAA extends Activity {

private EditText result;
private String[] dropdownList = {"A123", "A456"};
private int checkedItem = 0; 

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

    result = (EditText) findViewById(R.id.editText1);
    alert();
}

private void alert() {
    new AlertDialog.Builder(this)
    .setTitle("select")
    .setSingleChoiceItems(dropdownList, checkedItem, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    result.setHint("some tips");
                }
    }).show();
}

}

4

1 回答 1

1

使用处理程序从 alertDialog 更新任何 UI 组件。

Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
       result.setHint("some tips");
    }
}

private void alert() {
    new AlertDialog.Builder(this).setTitle("select")
    .setSingleChoiceItems(dropdownList, checkedItem, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.sendEmptyMessage(0);
        }
    }).show();
}
于 2012-08-16T07:04:21.823 回答