2012-12-07 13 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 –

相关问题