从Android中的字符串资源填充listView

时间:2012-03-25 19:47:18

标签: android android-listview

我正在尝试从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

        //}
    });




}

}

请帮助!!!

2 个答案:

答案 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);

ref: javadoc

答案 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>