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 ***

倒计时设置时间.java

我在这部分遇到的错误是;contextsecondsSet无法解析为任何变量。同样,我不知道该怎么办。我应该声明一个名为 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是你的内部标识。我放了 1 但你可以放任何数字。它是您的 ID,以便在活动关闭时您可以获取结果。

所以是的,你必须定义它。

secondsSet.

该类型似乎是Integer因为parent.getItemAtPostion被强制转换为Integer. 它被使用但未定义。在我看来是一个全局变量。你放在班上的那些。

所以是的,你也必须定义它:-)

最后对于context. 它被使用但未声明。您使用的教程似乎在全局范围内声明了所有这些变量。

编辑

清单文件告诉系统存在意图(活动)。

你应该有这样的东西

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