2012-08-16 57 views
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暗示在主要方面与AlertDialog

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

}

+0

您的'setContentView(...)' – Praveenkumar 2012-08-16 06:17:01

+0

您需要使用处理程序。 – SamSPICA 2012-08-16 06:18:19

+0

contentView不是重点,我只是想知道如何更改提示AlterDialog – user1531240 2012-08-16 06:19:48

回答

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(); 
} 
+0

它的作品谢谢你! – user1531240 2012-08-16 07:35:02

+0

不客气。您可以通过接受答案来解决问题。 – SamSPICA 2012-08-16 09:08:09