如何使用ListView工具在活动中的Eclipse(Android)中列出我的活动类?

时间:2013-12-18 15:17:08

标签: java android xml eclipse listview

我正在创建一个显示篝火歌曲列表的应用程序,目前我在应用程序上看到的只是所有歌曲的列表,点击后会打开另一个活动。打开的下一个活动看起来我想要它,但第一个活动(菜单)上的歌曲列表仅显示没有格式化的列表或我在XML中指定的任何图像或按钮。 - 我没有在代码中将它们联系起来,因为它们会阻止列表出现。

这是我的Menu.java的Java文件:

package com.lmarshall1995.scoutsongs;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Menu extends ListActivity{

    String classes[] = {"......"};

    String items[] = {"......"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1, items));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        String song_activity = classes[position];
        try{
        Class<?> ourClass = Class.forName("com.lmarshall1995.scoutsongs." + song_activity);
        Intent ourIntent = new Intent(Menu.this, ourClass);
        startActivity(ourIntent);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
    }

}

这是我的menu.xml的XML文件,我希望将列表放入(@ + id / list):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" xmlns:app="http://schemas.android.com/apk/lib/com.google.ads">

    <TextView
        android:id="@+id/SelectSong"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@android:id/list"
        android:layout_alignTop="@+id/ic_launcher"
        android:text="@string/SelectSong"
        android:textSize="20sp" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="320dp"
        android:layout_below="@+id/ic_launcher"
        tools:listitem="@android:layout/simple_list_item_1" >

    </ListView>

    <ImageView
        android:id="@+id/ic_launcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:contentDescription="@string/ic_launcher"
        android:src="@drawable/ic_launcher" />

    <ImageButton
        android:id="@+id/settings_button"
        android:src="@drawable/settings_button_selected"
        android:contentDescription="@string/action_settings"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" />

    <ImageButton
        android:id="@+id/exit_button"
        android:src="@drawable/exit_button_selected"
        android:contentDescription="@string/exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true" />

</RelativeLayout>

我想知道是否有人可以帮助我从我的menu.xml文件中将我认为的android.R.layout.simple_list_item_1转换为我的列表(@ + id / list)。有什么建议? 谢谢, 从 劳伦斯=]

2 个答案:

答案 0 :(得分:1)

你必须使用自定义适配器来做到这一点,创建一个扩展BaseAdapter vs ArrayAdapter的类,并使用它而不是简单的android适配器。 请参阅here教程。

答案 1 :(得分:1)

在致电setContentView(R.layout.menu)之前致电onCreate中的setListAdapter