簡體   English   中英

在自定義警報對話框中設置自定義文本 (Android-Studio)

[英]Set Custom Text in a Custom Alert-dialog (Android-Studio)

我的自定義對話框有以下代碼:package com.example.ortel.tagnet;

import dev.niekirk.com.instagram4android.requests.payload.InstagramUser;

public class CustomDialogClass extends Dialog implements
    android.view.View.OnClickListener {

  public Activity c;
  public Dialog d;
  public Button yes, no;
  public EditText name;
  public CustomDialogClass(Activity a) {
    super(a);
    // TODO Auto-generated constructor stub
    this.c = a;
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.custon_dialog);
    yes = (Button) findViewById(R.id.btn_yes);
    no = (Button) findViewById(R.id.btn_no);
    name = (EditText) findViewById(R.id.name);
    yes.setOnClickListener(this);
    no.setOnClickListener(this);

  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn_yes:
      c.finish();
      break;
    case R.id.btn_no:
      dismiss();
      break;
    default:
      break;
    }
    dismiss();
  }
  public String getFirst(String s) {
    name.setText(s);
    return s;
  }

}

在我的名字課上,我叫...

        CustomDialogClass cdd = new CustomDialogClass((Activity) context);
        cdd.getFirst("test");
        cdd.show();

我想將文本(由 id 'name' 定位)設置為 'test'。

當我運行此代碼時,出現以下錯誤:

java.lang.NullPointerException:嘗試在空對象引用上調用虛擬方法“void android.widget.EditText.setText(java.lang.CharSequence)”

問題是什么?

編輯:如果您需要更多信息,請告訴我!

你試試:

public void getFirst(String s) {
    name.setText(s);
  }

我認為您將函數名稱從:[getFirst] 更改為 [setNameTitle],您的名稱函數不清楚。

我剛剛想通了!

cdd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        cdd.getWindow().getAttributes().windowAnimations = R.style.dialog_animation;
        cdd.show();
        cdd.getFirst("test");

cdd.show();

必須先來!

cdd.findViewById(R.id.name);

通過這種方式,您可以通過布局文件中的 id 訪問任何對象:

cdd= new Dialog(Activity.this);
cdd.setContentView(R.layout.layout_file);
cdd.findViewById(R.id.name);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM