我必须将数据从一个活动传递到下一个活动。
我在第一个活动中使用了以下代码:
static String KEY_CATEGORY = "Category";
static final String KEY_TITLE = "Categoryname";
lview3.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//HashMap<String, String> map = songsList.get(position);
switch (position)
{
case Tech:
Intent tech = new Intent(MainActivity.this, com.ssmobileproductions.catalogue.SubCate.class);
tech.putExtra(KEY_TITLE, "Books");
startActivity(tech);
break;
case Sport:
Intent sport = new Intent(MainActivity.this, com.ssmobileproductions.catalogue.SubCate.class);
sport.putExtra(KEY_TITLE, "CD-DVD-Video");
startActivity(sport);
break;
default:
break;
}
在第二个活动中必须使用以下代码:
static String KEY_CATEGORY = "SubCategory";
static final String KEY_SUBCATE = "subcategoryname";
static final String KEY_TITLE = "Categoryname";
Bundle bdl = getIntent().getExtras();
KEY_CATEGORY = bdl.getString(KEY_TITLE);
我的数据有价值。但我必须运行该应用程序意味着我的屏幕变空了。这里做错了什么。请帮助我。
这是完整的源代码: MainACtivity.java
编辑:
这是我的 AndroidManifest.xml 文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar" >
<activity
android:name=".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=".SubCate"
android:label="@string/app_name" />
</application>
这是我的 xml 提要:
<Feed>
<category>
<Category>
<Categoryname>Books</Categoryname>
<SubCategory>
<subcategoryname>Internet</subcategoryname>
</SubCategory>
<SubCategory>
<subcategoryname>Software</subcategoryname>
</SubCategory>
</Category>
<Category>
<Categoryname>CD-DVD-Video</Categoryname>
<SubCategory>
<subcategoryname>CD</subcategoryname>
</SubCategory>
<SubCategory>
<subcategoryname>DVD</subcategoryname>
</SubCategory>
</Category>
</category>
</Feed>
这是我的期望输出,例如:
Books
CD-DVD-Video
我必须单击书籍意味着它进入下一个活动并且必须仅显示该书籍子类别。(即)我必须单击书籍类别意味着我必须仅显示 Internet 和软件。
我必须单击CD-DVD-Video意味着它转到下一个活动并且必须仅显示该 CD-DVd-Video 子类别。(即)我必须单击 CD-DVD-Video 类别意味着我必须仅显示 CD、DVD .
这是我当前的输出:
但我必须运行该应用程序意味着在第一次活动中获得书籍和 cd-dvd-video。我必须单击任何类别意味着显示空白屏幕。请帮助我。这里发生了什么错误。
编辑:
在这些第二个活动(SubCate.java)文件中,我已删除以下行
Bundle bdl = getIntent().getExtras();
KEY_CATEGORY = bdl.getString(KEY_TITLE);
在我必须运行该应用程序之后意味着我已经在第一页上显示了 Books CD-DVD-Video 类别。之后我必须单击任何类别意味着我已经在每个类别列表上显示了所有子类别。
例如:
我必须单击图书类别意味着我必须仅显示 Internet 和软件。但这里显示的是 Internet、软件、cd、dvd。而且我必须单击CD-DVD-Video类别意味着我必须仅显示 CD、DVD。但这里也显示了 4 个子类别。这里做错了什么。请帮助我。