在自定义对话框中设置文本视图

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 中设置图像会导致延迟

在自定义 UIview 中设置 UItableview 的委托和数据源

在自定义导航栏中设置条形按钮项目颜色

在自定义 Listview 适配器中使用多个视图

在自定义单元格中设置自定义附件类型

在自定义 HttpClientHandler 中设置 allowautoredirect=false