我正在尝试从Android中字符串XML文件中定义的字符串资源填充listview。 我没有收到任何错误,但是当我运行应用程序时,它要求我强行关闭。 我在log cat manager中收到以下错误 03-26 01:04:42.903:E / dalvikvm(205):无法打开堆栈跟踪文件'/data/anr/traces.txt':权限被拒绝
以下是我的程序代码
public class MainMenu extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
/*ListView menu = (ListView) findViewById(R.id.ListView_Menu);
String[] items = { getResources().getString(R.string.today_bd),getResources().getString(R.string.Add_bd),
getResources().getString(R.string.msg_tmplate),getResources().getString(R.string.credits),
getResources().getString(R.string.help)
};
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,R.layout.menu,items);
menu.setAdapter(adapt);*/
ListView menuList = (ListView) findViewById(R.id.ListView_Menu);
String[] items = { getResources().getString(R.string.today_bd),
getResources().getString(R.string.add_bd),
getResources().getString(R.string.msg_tmplate),
getResources().getString(R.string.credits),
getResources().getString(R.string.help)
};
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, R.layout.menu, items);
menuList.setAdapter(adapt);
menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {
TextView textView = (TextView) itemClicked;
String strText = textView.getText().toString();
if (strText.equalsIgnoreCase(getResources().getString(R.string.today_bd))) {
//startActivity(new Intent(QuizMenuActivity.this, QuizGameActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(R.string.add_bd))) {
// Launch the Help Activity
//startActivity(new Intent(QuizMenuActivity.this, QuizHelpActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(R.string.msg_tmplate))) {
// Launch the Settings Activity
//startActivity(new Intent(QuizMenuActivity.this, QuizSettingsActivity.class));
} else if (strText.equalsIgnoreCase(getResources().getString(R.string.credits))) {
// Launch the Scores Activity
// startActivity(new Intent(QuizMenuActivity.this, QuizScoresActivity.class));
}
else if (strText.equalsIgnoreCase(getResources().getString(R.string.help))) {
// Launch the Scores Activity
// startActivity(new Intent(QuizMenuActivity.this, QuizScoresActivity.class));
}
}
//public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
//long arg3) {
// TODO Auto-generated method stub
//}
});
}
}
请帮助!!!
答案 0 :(得分:2)
你正在调用的ArrayAdapter
构造函数有三个参数 - 你有第一个和第三个,但第二个想要成为项布局。
textViewResourceId包含实例化视图时使用的TextView的布局文件的资源ID。
尝试使用android.R.layout.simple_list_item_1
,这应该有帮助...
ArrayAdapter<String> adapt =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
答案 1 :(得分:0)
我尝试了上面给出的方法,似乎没有用。 这是我的menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="0.00" >
<TextView
android:id="@+id/TextView01"
android:layout_height="wrap_content"
android:text="@string/main_menu"
android:textSize="@dimen/screen_title_size"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="10"
android:layout_width="wrap_content"
android:layout_gravity="fill_horizontal|center"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:shadowColor="@android:color/white"
android:textColor="@color/title_color"></TextView>
</RelativeLayout>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.00" >
</ListView>