2

Android プログラマーの皆さん、こんにちは。

この質問は以前に尋ねられました。しかし、答えはありません。だから私はそのための解決策が必要です。実際に私は(非活動)Mainactivity.javaからの呼び出しの警告ボックスを表示しようとしています。test.java

UIコーディングがない場合、それは正常に機能します。そのコードが UI に依存している場合は、スロー エラーを意味します。

活動クラス :

public class Mainactivity extends Activity
{
    public void message()
    {
        Log.i("Success : Call from non-UI & non activity class");//Upto this line working if i called message() function from other non-activity class
        DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener()
        {
        public void onClick(DialogInterface dialog, int which)
        {
             switch (which)
             {
                //Code
            }
         }
     };
     AlertDialog.Builder builder = new AlertDialog.Builder(this);
     builder.setTitle("FMS Status Message :- ");
     builder.setMessage(msg)
     .setPositiveButton("OK",dialogClickListener).show();

    }
}

非活動クラス :

public class test extends BroadcastReceiver
{
    Mainactvity in = new Mainactvity();   

    @Override   
    public void onReceive(Context context, Intent intent)
    {
       in.message();
    }
}

それが解決されれば、私のプロジェクトの主な目的は達成されます。どなたか助けてください。

前もって感謝します。

4

2 に答える 2

3

まず第一に、Android 向けの悪いプログラミング手法、

Mainactvity in = new Mainactvity();   

Activity クラスのコンストラクターを作成することはできません。

次に、Activity を参照していない Dialog に UI 要素を表示しようとしていますBroadcastReceiverBroadcastReceiverでダイアログを表示するには、アクティビティのコンテキスト(UIに関係する場合)またはアプリケーションを使用します。

于 2013-02-14T06:52:39.907 に答える
0

Constructorアクティビティを取得できる を作成します。このような -

Activity activity;
public test (Activity activity){
         this.activity = activity;
}

今、これactivityを引数として使用してください -

AlertDialog.Builder adb=new AlertDialog.Builder(activity);

.だけを使用してダイアログを表示することはできないためcontextです。そのために を提供する必要がありますActivity

ここで一つ答えた

于 2014-10-15T12:25:14.303 に答える