2012-03-25 76 views
1

我想从Android中的字符串XML文件中定义的字符串资源中填充listview。 我没有收到任何错误,但是当我运行该应用程序时,它要求我强制关闭。 我得到的日志猫经理以下错误 一月3日至26日:04:42.903:E/dalvikvm(205):无法打开堆栈跟踪文件“/data/anr/traces.txt”:权限被拒绝从Android的字符串资源中填充listView

这里是代码为我的程序

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

你添加指定的权限读/写外部文件? – Mayank 2012-03-25 20:17:21

+0

尝试'adb logcat'让你的堆栈跟踪 – dldnh 2012-03-25 22:07:29

+0

并提供你的R.layout.menu ..布局肯定会导致错误。你不使用标准布局,所以你的自定义布局必须只包含一个TextView – 207 2012-03-25 22:15:07

回答

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

+0

非常感谢你先生。它像一个魅力.. – 2012-03-26 16:56:50

+0

尝试upvote如果这是为你工作 – 2013-04-25 04:41:38

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> 

在AndroidMenifest