使用ListView

时间:2015-06-17 07:46:28

标签: android listview android-listview

我正在制作一个测验计划来练习listview的工作方式。

我声明了这些字符串。

    final String[] topics= {"History" , "Arts","Civics","Transport","Technology","Science", "Social",
            "Architecture", enter code here"Health","Geography","Computers","Business","Celebrities","Sports","Literature", "Music", };

now i use listview to see the list of items i have declared 

    Lst.setOnItemClickListener(new OnItemClickListener()
        {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

                Bundle bundle = new Bundle();
                bundle.putStringArray("Bundlekey", topics);



                String Topicname = topics[position];

                Intent intent = new Intent(QwizActivity.this,secondActivity.class);
                intent.putExtras(bundle);

                startActivity(intent);


            }

xml中的listview声明`

<ListView
        android:id="@+id/ListVwe"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#388E3C"
        android:elevation="2dp"
        android:textColor="#FFFFFF" >
    </ListView>`

我做了第二个活动,我从第一个活动调用输入并操作我从bundle获得的输入,但我没有获得任何包值。它是null我想比较每个项目,例如我选择历史我想对历史有一个不同的问题,如果我选择 arts 我想要艺术问题。但我无法从第一次活动中检索任何值,我做了一个吐司,而吐司是空的。我使用的方法不正确。我正在寻求一些指导请帮助

我宣布第二项活动的代码。

TextView Qsn ;
TextView TopicTitle ;   
Button  Ybtn    ;   
Button  Nbtn    ;



@Override protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.history);

        Qsn =   (TextView) findViewById(R.id.Question);
        TopicTitle  = (TextView)findViewById(R.id.Topictxt);
        Ybtn=(Button)findViewById(R.id.Yesbtn);
        Nbtn=(Button)findViewById(R.id.Nobtn);


        Intent intent = getIntent();

        Bundle bundle =intent.getExtras();
        String check=bundle.getString("Bundlekey") ;
        TopicTitle.setText(check);
        Toast.makeText(getApplicationContext(), check, Toast.LENGTH_SHORT)  .show();        
        }

第二个活动的xml

android:id="@+id/Question"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="Question"

android:id="@+id/Topictxt"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="History"

我的问题是为什么&#34; 检查&#34;空的,我如何比较&#34; 检查 &#34;使用&#34; 历史&#34;等值刺痛&#34; arts&#34;这是我的第一个问题所以如果我没有以正确的格式提问,请告诉我。三江源。

3 个答案:

答案 0 :(得分:2)

您正在使用OnItemClickListener中的putStringArray创建一个数组,并在下一个Activity中将其作为aString。改为发送Topicname。

String Topicname = topics[position];
bundle.putString("Bundlekey", Topicname);

你也可以制作&#34; Bundlekey&#34;要访问的公共静态变量

答案 1 :(得分:1)

在第二个Activity中获取数据时,必须从Bundle获取String Array。

Bundle b=this.getIntent().getExtras();

String[] array=b.getStringArray(key);

然后从此Array获取String值。

答案 2 :(得分:1)

检查你从意图中收到了什么字符串,你可能必须使用for循环来比较数组中的每个值。下面的函数将返回你收到的字符串

String compareValues(您的数组名称,您收到的值) {

String temp;
for(int i=0;i<array.length;i++)
{


if(value.equalsignorecase(array[i]))
temp = array[i];
break;

}
}
return temp;
}