-2

あるアクティビティから次のアクティビティにデータを渡す必要があります。

最初のアクティビティで以下のコードを使用しました。

   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;
         }

2 番目のアクティビティでは、以下のコードを使用する必要があります。

    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

SubCate.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

Booksをクリックする必要があるのは、次のアクティビティに進むことを意味し、その Books サブカテゴリのみを表示する必要があります。(つまり) Book カテゴリをクリックする必要があるのは、インターネットとソフトウェアのみを表示する必要があることを意味します。

CD-DVD-Videoをクリックする必要があるのは、次のアクティビティに進むことを意味し、その CD-DVD-Video サブカテゴリのみを表示する必要があることを意味します。(つまり) CD-DVD-Video カテゴリをクリックする必要があるということは、CD、DVD のみを表示する必要があることを意味します。 .

これは私の現在の出力です:

しかし、最初のアクティビティで本と cd-dvd-video を取得していることを意味するアプリを実行する必要があります。カテゴリをクリックする必要があるのは、空白の画面が表示されることを意味します。助けてください。ここで発生したエラーは何ですか。

編集:

これらの 2 番目のアクティビティ ( SubCate.java ) ファイルでは、次の行を削除しました

Bundle bdl = getIntent().getExtras();  
KEY_CATEGORY = bdl.getString(KEY_TITLE);

アプリを実行すると、最初のページに書籍 CD-DVD-ビデオ カテゴリが表示されます。その後、任意のカテゴリをクリックする必要があります。これは、各カテゴリ リストにすべてのサブカテゴリが表示されたことを意味します。

例えば:

ブックカテゴリをクリックする必要があるということは、インターネットとソフトウェアのみを表示する必要があることを意味します。しかし、ここではインターネット、ソフトウェア、CD、DVD が表示されます。また、 CD-DVD-Videoカテゴリをクリックする必要があるということは、CD、DVD のみを表示する必要があることを意味します。しかし、ここでは 4 つのサブカテゴリも表示されます。

4

2 に答える 2

1

マニフェスト ファイル内のアクティビティの名前を次のように変更します。

 <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" />

アクティビティ:

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, SubCate.class);
             tech.putExtra(KEY_TITLE, "Books");
             startActivity(tech);   
             break;
         case Sport:
             Intent sport = new Intent(MainActivity.this, SubCate.class);
             sport.putExtra(KEY_TITLE, "CD-DVD-Video");
                startActivity(sport);   
             break;


         default:
             break;
     }

2 番目のアクティビティでは、次のようにします。

String key = getIntent().getStringExtra(KEY_TITLE);
于 2012-12-07T12:55:48.213 に答える
0

アドフォローするだけ

インテント i = getIntent();

if(i != null){

   String Title = i.getExtra.getString(KEY_TITLE);

}

于 2012-12-07T13:02:00.310 に答える