在按钮上显示列表视图单击Android

时间:2010-10-20 17:27:19

标签: android

我正在创建一个Android应用程序,其中有两个活动。一个活动包含一个按钮。在按钮上单击,我想切换到其他活动,显示包含几个选项的列表视图。

在屏幕或活动之间切换两次,我使用以下代码

Intent intent = new Intent(Activity1.this,Activity2.class);
               startActivity(intent);

由于我的Activity2类扩展了'ListActivity',因此这段代码似乎不起作用。在我的按钮上单击,我想显示包含一些数据的列表视图。

任何帮助将不胜感激

@Siddharth 我似乎做了几乎一样的事情 这是我的实际代码

来自活动1

public void onClick(View v) {

            Intent intent = new Intent(View_Data.this,CategoryList.class);
               startActivity(intent);

        }

在活动2中

public class CategoryList extends ListActivity {

public TextView selection;
public String[] categories;
ArrayList<String> type_of_category;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.category_list);
    getCategories();    

}

    public void getCategories() {

        DBHelper dbhelper = new DBHelper(this);
        type_of_category = new ArrayList<String>();

        type_of_category = dbhelper.getTypesOfQuotes();
        String[] items = new String[100];
        for(int i=0;i<type_of_type_of_category.size();i++)
        {
            items[i] = type_of_type_of_category.get(i);
        }

        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items));

    }

}

这是我的XML文件

   <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello" />

</LinearLayout>

在我的第二个活动中,我收到了此行中的错误

 setContentView(R.layout.category_list);

1 个答案:

答案 0 :(得分:1)

根据您的第二个活动中的数据是来自数据库还是静态数据,此代码应该适合您。我假设你的帖子中你不需要将数据从第一个活动发送到第二个活动。这是我的应用程序的实际代码,它是数据库驱动的。如果您不使用数据库,则可以更改此代码的一部分以使用该代码而不是数据库。它应该让你开始:

从第1次活动开始:

public void onClickListContacts(View target)
{
    Intent listContacts = new Intent(this, com.dzinesunlimited.quotetogo.ContactsList.class);
    startActivity(listContacts);
}

第二项活动:

public class ContactsList extends ListActivity {
DBAdapter dbContactList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contacts_list);

    dbContactList = new DBAdapter(this);

    // Calls the method to display the ListView of all Contacts
    fillData();
}    

private void fillData() {
    // Pull the data from the database
    String[] fields = new String[]    {    dbContactList.TABLE_CON_NAME    };
    int[] views = new int[]    {    android.R.id.text1    };

    Cursor c = dbContactList.getAllContacts();
    startManagingCursor(c);

    // Set the ListView
    ListAdapter prjName = new SimpleCursorAdapter(this,
            android.R.layout.simple_list_item_1, c, fields, views);
    setListAdapter(prjName);

    dbContactList.close();

}

对于静态列表,您还可以参考本教程:http://www.vogella.de/articles/Android/article.html#lists

希望这有帮助。

PS:如果您可以发布有问题的第二个活动的代码,那将会很有帮助。

将此添加到您的XML中,看看是否有帮助:

<ListView 
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"    >
</ListView>