我正在创建一个显示篝火歌曲列表的应用程序,目前我在应用程序上看到的只是所有歌曲的列表,点击后会打开另一个活动。打开的下一个活动看起来我想要它,但第一个活动(菜单)上的歌曲列表仅显示没有格式化的列表或我在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)。有什么建议? 谢谢, 从 劳伦斯=]
答案 0 :(得分:1)
你必须使用自定义适配器来做到这一点,创建一个扩展BaseAdapter vs ArrayAdapter的类,并使用它而不是简单的android适配器。 请参阅here教程。
答案 1 :(得分:1)
在致电setContentView(R.layout.menu)
之前致电onCreate
中的setListAdapter
。