私は以下のクラスを持っています(それは非アクティビティクラスですが、コンテキストがあります)、そのメソッドの1つを介してカスタムダイアログを表示したい、私は以下のDialogActivityクラスを持っています
DialogActivity クラス
public class DialogActivity extends Activity implements OnClickListener {
Button btnOk;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.info_dialog);
btnOk = (Button) findViewById(R.id.btn_info_ok);
btnOk.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_info_ok:
this.finish();
break;
}
}
}
このレイアウトの XML は次のとおりです。
XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:layout_gravity="top"
android:orientation="vertical" >
<TextView
android:id="@+id/info_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/dialog_message"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/btn_info_ok"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/btn_info_ok" />
</LinearLayout>
onEnabled()
以下のメソッドが実行されたときに、これを別のアクティビティとして表示したいのですが、
DeviceAdminReceiverSample
public class DeviceAdminReceiverSample extends DeviceAdminReceiver {
static final String TAG = "DeviceAdminReceiver";
/** Called when this application is approved to be a device administrator. */
@Override
public void onEnabled(Context context, Intent intent) {
super.onEnabled(context, intent);
Toast.makeText(context, R.string.device_admin_enabled,
Toast.LENGTH_LONG).show();
Intent in.setClass(context, DialogActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(in);
}
}
info_message
しかし、これを呼び出すと、アクティビティがダイアログとして表示されます(必要に応じて)。このクラスから同じメソッドで設定したいのですがonEnabled()
、どうすればそれを行うことができますか? にメソッドを作成しsetText()
、DialogActivity()
それがスローするメソッドでそれを呼び出すと、NullPointerException
実行時にメッセージを設定するための参照を取得する方法がわかりませんか?
下の画像はこんな感じです!