-1

この関数でフラグ変数に値を与えるとエラーが発生します。実際には、インテント コードが 2 回目に実行されるようにしたいと考えています。この問題を解決する方法

    final boolean flag = false;
    final Spinner spnrContacts = (Spinner) findViewById(R.id.spnrContacts);
    ArrayAdapter<String> contactsAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, SelectContacts);
    contactsAdapter
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spnrContacts.setAdapter(contactsAdapter);

    spnrContacts
            .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
            {
                public void onItemSelected(AdapterView<?> adapterView,
                        View view, int i, long l)
                {
                    // Your code 

                    if (flag)
                    {
                        Intent intent = new Intent(NewScheduleOptions.this,
                                TestActivity.class);
                        intent.putExtra("selectedType", i);
                        startActivity(intent);
                    }
                    flag = true;
                }

                public void onNothingSelected(AdapterView<?> adapterView)
                {
                    return;
                }
            });
4

3 に答える 3

1

フラグをクラスのメンバーにすることができます。最終的である必要はなく、匿名クラスでアクセスできます

于 2012-10-06T08:50:19.837 に答える
0

2回目に実行したいのは何ですか?このアクティビティを 2 回目に開始する場合、このアクティビティが開始されるたびに flag が false に初期化されるため、コードは失敗します。

フラグ値を共有設定に保存する必要があります。初めて実行するときは、共有設定で true として保存します。次回は、共有設定からフラグを読み取り、フラグを確認します。フラグが true の場合、アクティビティが実行されているのは 2 回目であり、コードは正常に実行されます。

于 2012-10-06T08:55:55.547 に答える
0
boolean flag = false;

フラグをグローバル変数として宣言する

例:

public class MainActivity extends Activity
{
   boolean flag;  <---------------
   oncreate(saved.....)
   {
       flag= false;
       //your code here
   }
}
于 2012-10-06T08:50:53.513 に答える