2013-08-23 2 views
0

안녕하세요 데이터베이스의 콘텐츠를 표시하려는 내 활동에서 목록보기를 만들었습니다. 하지만 목록보기가 없다는 오류가 발생했습니다. 누구든지 오류를 극복하기 위해 더 나은 해결책을 제공 할 수 있습니까?데이터베이스의 목록 뷰가 작동하지 않습니다.

내 로그 캣은 목록보기를 표시하기 위해 여기

   public class Friends_list extends ListActivity implements 
         OnItemClickListener{ 


     private ArrayList<String> results = new ArrayList<String>(); 

     private String tableName = LoginDataBaseAdapter.tableName; 

      private SQLiteDatabase newDB; 

      ListView listview; 
      Context context; 



      @Override 
     protected void onCreate(Bundle savedInstanceState) { 



    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_friends); 
    //listview=(ListView)findViewById(R.id.list); 

    openAndQueryDatabase(); 

    displayResultList(); 


    context=this; 


    //String[] arrayColumns=new String[]{"Name,Username"}; 
    //int[]arrayViewIDs=new int[] 
      {R.id.textViewSMSSender,R.id.textViewMessageBody}; 
    //Cursor cursor; 

      //cursor.getContentResolver().query(Uri.parse("content://sms/inbox"), 
      null,null,null,null); 
    //@SuppressWarnings("deprecation") 
    //SimpleCursorAdapter adapter=new 
       SimpleCursorAdapter(this,R.layout.friendsms, cursor, arrayColumns, 
       arrayViewIDs); 

    //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     // android.R.layout.simple_list_item_activated_1, android.R.id.text1, 
      value); 

    //listview.setAdapter(adapter); 


    //listview.setOnItemClickListener(this); 
     } 


      private void setListAdapter(ArrayAdapter<String> arrayAdapter) { 
    // TODO Auto-generated method stub 

      } 

       private void openAndQueryDatabase() { 
     try { 

      LoginDataBaseAdapter loginDataBaseAdapter=new  
         LoginDataBaseAdapter(this.getApplicationContext()); 
      newDB=loginDataBaseAdapter.getWritableDatabase(); 
      Cursor c=newDB.rawQuery(" SELECT NAME , 
        USERNAME  FROM "+ tableName, null); 
    if (c != null) { 
     if (c.moveToFirst()) { 
      do { 
        String Name=c.getString(c.getColumnIndex("NAME")); 
        String Username=c.getString(c.getColumnIndex("USERNAME")); 
      } 
       while(c.moveToNext());    
     } 
      } 
      } 
       catch (SQLiteException se) { 
     Log.e(getClass().getSimpleName(), "Could not open the database"); 
      } 
       finally { 
      if(newDB!=null) 
     newDB.execSQL(" DELETE FROM "+ tableName); 
       newDB.close(); 
        } 
      } 

       private void displayResultList() { 

     TextView tView = new TextView(this); 
      tView.setText("Friends"); 
      getListView().addHeaderView(tView); 
      setListAdapter(new ArrayAdapter<String>(this, 
         android.R.layout.simple_list_item_1, results)); 
        getListView().setTextFilterEnabled(true); 


        } 


     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) 
     { 

      Intent in2=new 
       Intent(Friends_list.this,InboxActivity.class); 
      startActivity(in2); 
     } 


        } 

아래 내 XML 코드를 내 자바 클래스입니다 제공

08-23 07:04:28.025: E/AndroidRuntime(24675): FATAL EXCEPTION: main  
    08-23 07:04:28.025: E/AndroidRuntime(24675): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.neochat/com.neochat.Friends_list}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.ActivityThread.startActivityNow(ActivityThread.java:2023)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.widget.TabHost.setCurrentTab(TabHost.java:413)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:546)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.view.View.performClick(View.java:4204)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.view.View$PerformClick.run(View.java:17355)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.os.Handler.handleCallback(Handler.java:725)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at 
    android.os.Handler.dispatchMessage(Handler.java:92) 
    08-23 07:04:28.025: E/AndroidRuntime(24675): at 
android.os.Looper.loop(Looper.java:137 
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.ActivityThread.main(ActivityThread.java:5041)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    java.lang.reflect.Method.invokeNative(Native Method)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    java.lang.reflect.Method.invoke(Method.java:511)  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    08-23 07:04:28.025: E/AndroidRuntime(24675): at 
    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    08-23 07:04:28.025: E/AndroidRuntime(24675): at dalvik.system.NativeStart.main(Native Method) 
    08-23 07:04:28.025: E/AndroidRuntime(24675): Caused by: java.lang.RuntimeException: Your 
    content must have a ListView whose id attribute is 'android.R.id.list'  
    08-23 07:04:28.025: E/AndroidRuntime(24675): at  
    android.app.ListActivity.onContentChanged(ListActivity.java:243) 

아래에 주어진

  <LinearLayout 
      android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
       > 
      <ListView 
      android:id="@+id/list" 
     style="@style/WhiteText" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="10dp" 
       > 
      </ListView> 
      </LinearLayout> 
+0

에서 onCreate()에서 간단한 Activity

public class Friends_list extends ListActivity 

을 확장'당신의 내용은 id 속성이 'android.R.id.list'인 ListView가 있어야합니다. – njzk2

답변

2

당신의 listview에 대한 id 같이

android:id="@android:id/list 그래서 당신의 XML의 모양을해야한다 : 당신은 android.R.id.list 같은 ID로 다스 려하는

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@android:id/list" 
     style="@style/WhiteText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="10dp"/> 
</LinearLayout> 
+0

네, 고마워요.하지만 내 목록에있는 내용을 볼 수는 없습니다. 할일이 있습니까? – user2656455

0

, 난 그냥 내 목록보기 테스트 dosent가 id를 찾습니다. R.id.list 만 사용하면 도움이되기를 바랍니다! 당신은 당신이 더 나은 다음과 같이 제공 할 수 있습니다 ListActivity, 을 확장하고 있기 때문에

0

쉬운 솔루션을 그냥

  @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_friends); 
     listview=(ListView)findViewById(R.id.list); 

    // other code here.... 
    } 
관련 문제