[英]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.