0

私は Android 開発に不慣れで、現在、このチュートリアルに基づいて単純なアプリを開発しようとしているときに立ち往生しています。

私が欲しいのは、基本的に、ユーザーが(上記のアプリの)設定メニューからボタンをクリックしたときに新しいインテントを開始することです。

これは私のコードの一部です:

MainActivity.java

ここで、コードのどこにも宣言されていない定数である SET_TIME_REQUEST_ID でエラーが発生しています。宣言する必要がありますが、定数の型と値を割り当てる必要があるかわかりません。

*** REST OF THE CODE ****

private void setTime() {
      Intent i = new Intent(getBaseContext(), CountdownSetTime.class);
      startActivityForResult(i, SET_TIME_REQUEST_ID);    
}

*** REST OF THE CODE ***

CountdownSetTime.java

この部分で発生するエラーは次のとおりです。contextおよびsecondsSetは、どの変数にも解決できません。繰り返しますが、これをどうするかわかりません。secondsSet という変数を宣言する必要がありますか? はいの場合、タイプは何ですか?

*** REST OF THE CODE ***

public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.set_time);

      context = this.getApplicationContext(); // ERROR HERE.
      Spinner spinner = (Spinner) findViewById(R.id.spinner);
      ArrayList<Integer> spinnerList = new ArrayList<Integer>();

      for (int i = MIN; i <= MAX; i++) {
        spinnerList.add(i);
      }

      ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(context,
              android.R.layout.simple_spinner_item, spinnerList);

      adapter.setDropDownViewResource(
              android.R.layout.simple_spinner_dropdown_item);

      spinner.setAdapter(adapter);
      spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent,
          View view, int pos, long id) {
          secondsSet = (Integer)parent.getItemAtPosition(pos); // ERROR HERE
        }
        public void onNothingSelected(AdapterView<?> parent) {
          // Do nothing.
        }
    });
}

*** REST OF THE CODE ***

マニフェスト.xml

私はこれについてまったく無知です。新しい意図を登録する方法がわかりません。

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.gelliesmedia.countdown.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.gelliesmedia.countdown.CountdownSetTime"
        android:label="@string/app_name"
        android:parentActivityName="com.gelliesmedia.countdown.MainActivity" >
        <meta-data
             android:name="android.support.PARENT_ACTIVITY"
             android:value="com.gelliesmedia.countdown.MainActivity" />
    </activity>
</application>

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

あなたがリンクとして提供するチュートリアルを読みました。そのチュートリアルでは、完全なコードは提供されていません。私が見たところによると、あなたが言及した変数を定義する必要があります。

通常、これを最初にそのSET_TIME_REQUEST_IDようなもので追加します

private static final int SET_TIME_REQUEST_ID = 1;

onActivityResult(int, int, Intent) その ID はあなたの内部 ID であるためです。私は 1 を入れましたが、任意の数を入れることができます。これは、アクティビティが終了したときに結果を取得できるようにするための ID です。

はい、定義する必要があります。

についても同じですsecondsSet

が にキャストされているIntegerため、型のようです。使用されていますが、定義されていません。私にはグローバル変数のようです。クラスのトップに置くもの。parent.getItemAtPostionInteger

はい、それも定義する必要があります:-)

最後に についても同様ですcontext。使用されていますが、宣言されていません。使用するチュートリアルでは、これらすべての変数をグローバルに宣言しているようです。

編集

マニフェスト ファイルは、インテント (アクティビティ) が存在することをシステムに伝えます。

そんなものを持っているはずです

<activity
    android:name="com.gelliesmedia.countdown.CountdownSetTime">
</activity> 
于 2013-08-16T06:54:48.227 に答える