2012-12-07 12 views
-2

我必須將數據從一個活動傳遞到下一個活動。將數據從活動傳遞到Android中使用綁定的下一個活動

我用下面的代碼在我的第一個活動:

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

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 

我必須點擊書籍意味着它的下一個活動去和來顯示書籍(即)我必須單擊書籍類別意味着我必須僅顯示Internet和軟件。 (即)我必須點擊CD-DVD-Video類別意味着我有CD-DVD-Video類別的意思。我不得不點擊CD-DVD-Video類別。僅顯示CD,DVD。

這是我的電流輸出

但我有運行應用程序的手段空白屏幕是displayed.please我得到的書籍和CD-DVD視頻的第一activity.i必須單擊任一類別指幫助我。這裏發生了什麼錯誤。

編輯:

在這些第二活性(SubCate.java)文件下面線

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

我已刪除後,我必須運行的應用程序是指我已經顯示圖書CD-第一頁的DVD-Video類別。之後,我必須點擊任何類別意味着我已經在每個類別列表上顯示了所有子類別。

FOR EG:

我必須點擊類別意味着我必須顯示互聯網和軟件而已。但在這裏顯示互聯網,軟件,光盤,DVD。 也是我必須點擊CD-DVD-Video類別意味着我必須顯示CD,DVD only.But此處還顯示4個子類別。這裏有什麼錯誤地完成。請幫助我。

+0

你在manifeast文件中輸入第二個文件的活動? –

+0

我已添加到AndroidManifest.xml文件中 – user1859172

+0

使用getIntent()。getStringExtra(KEY_TITLE); – Pavlos

回答

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

在你的第二個活動如下操作:

String key = getIntent().getStringExtra(KEY_TITLE); 
+0

你可以顯示你的代碼片段嗎? – curious

+0

@ user1859172:你如何知道你沒有從一個Activity獲取數據。只需發佈你的XML。我相信你沒有通過正確的標籤解析 –

+0

請檢查我編輯的問題,並給我這個解決方案 – user1859172

0

只是做廣告關注

Intent i = getIntent();

if(i != null){ 

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

}

+0

真的很介意吹答案,如果意圖爲空,那麼你如何從意圖獲得價值。 –

+0

但這不是答案,因爲如果他發送靜態值,將值從一個活動發送到第二個活動的代碼是正確的。問題在xml解析中。可能是他沒有發送正確的XML TAG –

相關問題