在自定义对话框中设置文本视图
Posted
技术标签:
【中文标题】在自定义对话框中设置文本视图【英文标题】:set textview in custom dialog 【发布时间】:2013-10-13 21:20:00 【问题描述】:我已经创建了一个自定义对话框,但是我无法在 java 对话框布局中的 textview 中设置文本,并且我的程序崩溃了。我的错误是什么?
public class Total_CBC extends Activity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.total_cbc);
final TextView RBC_T = (TextView) findViewById(R.id.total_cbc_text_rbc);
Button RBC_B = (Button) findViewById(R.id.total_cbc_btn_rbc);
//
RBC_B.setOnClickListener(new OnClickListener()
@Override
public void onClick(View arg0)
showCustomDialog(RBC_T);
);
protected void showCustomDialog(final TextView _RBC_T)
final Dialog dialog = new Dialog(Total_CBC.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_edit);
final EditText editText = (EditText) dialog.findViewById(R.id.dialog_edit_edittext);
Button button = (Button) dialog.findViewById(R.id.dialog_edit_btn);
TextView titel = (TextView) findViewById(R.id.dialog_edit_text_title);
titel.setText("RBC");
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
_RBC_T.setText(editText.getText().toString());
dialog.dismiss();
);
dialog.show();
当我删除这条线程序工作但我需要设置文本
titel.setText("RBC");
【问题讨论】:
【参考方案1】:改变
TextView titel = (TextView) findViewById(R.id.dialog_edit_text_title);
到
TextView titel = (TextView) dialog.findViewById(R.id.dialog_edit_text_title);
【讨论】:
TextView 标题 = (TextView) dialog.findViewById(R.id.dialog_edit_text_title);给我 java.lang.null 指针异常【参考方案2】:您试图在显示对话框之前设置 TextView 的文本,这就是它返回 null 的原因。 正确的做法是在对话框创建后设置文本:
把它放到你的自定义对话框中
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
TextView titel = (TextView)dialog.findViewById(R.id.dialog_edit_text_title);
titel.setText("RBC");
return builder.create();
【讨论】:
以上是关于在自定义对话框中设置文本视图的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 uitableviewcell 中设置图像会导致延迟