我是Android开发的新手,在尝试基于This Tutorial
开发简单应用时遇到困难当用户通过设置菜单(所述应用程序)点击按钮时,我想要的基本上是开始新的意图。
这是我的代码的一部分:
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
我对这部分的错误是;无法将 上下文 和 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 ***
的manifest.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>
有人能指出我正确的方向吗?
答案 0 :(得分: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>