2012-05-07 108 views
0

我有一个使用一个ListView元素如下ListView没有显示?

public class List1 extends Activity 
{ 

Context context=this; 

@Override 
     public void onCreate(Bundle savedInstanceState) 
     { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listview); 

     try{ 
         //DB 

      final SQLiteDatabase db; 
      db = openOrCreateDatabase(
       "Secret.db" 
       , SQLiteDatabase.CREATE_IF_NECESSARY 
       , null 
       ); 
      db.setVersion(1); 
      db.setLocale(Locale.getDefault()); 
      db.setLockingEnabled(true); 



      Cursor cur = db.query("tbl_user",null,null,null,null,null,null); 



      //DB Over 


     ListView listView = (ListView) findViewById(R.id.mylist); 
     listView.setTextFilterEnabled(true); 



     final String[] values = new String[50]; 
     int i=0; 
     while(cur.moveToNext()) 
     { 

        values[i]=Integer.toString(cur.getInt(0))+":"+cur.getString(1)+":"+cur.getString(2);  
      i++; 
     } 

     cur.close(); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,R.layout.list_item,values); 


      listView.setAdapter(adapter); 
      listView.setVisibility(0); 



       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

       public void onItemClick(AdapterView<?> parent, View view, int position,long id) 
       //public void onItemClick(ListView<?> listview, View view, int position,long id) 
       { 



        try 
        { 
        Intent i=new Intent(List1.this,Form1.class); 
        i.putExtra("uid","85"); 
        startActivity(i); 
        finish(); 
        } 
        catch(Exception e) 
        { 
         String insert2="insert into login values("+"\""+e.toString()+"\""+");"; 
         db.execSQL(insert2); 

        } 


       } 
      }); 

       db.close(); 
      //required 
      } 
     catch(Exception e) 
     { 
     Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();} 
     } 
} 

一个活动这是我listview.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <ListView 
     android:id="@+id/mylist" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

    </RelativeLayout> 

这是具有所需的TextView我list_item.xml文件

<?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/tv1" 
     android:padding="10dp" 
     android:background="@drawable/textview1" 
     style="@style/textview_text" 
     android:textSize="16dp"> 


</TextView> 

但是ListView不起作用。我的意思是,在参加此活动后,该应用显示错误,显示“APP_NAME意外停止”。相同的代码可以工作一次或两次,然后继续显示上述错误。我可以知道为什么会发生?
编辑
这是logcat的文件

W/dalvikvm(2694): threadid=3: thread exiting with uncaught exception (group=0x4 
001b188) 
E/AndroidRuntime(2694): Uncaught handler: thread main exiting due to uncaught e 
xception 
E/AndroidRuntime(2694): java.lang.NullPointerException 
E/AndroidRuntime(2694):  at android.widget.ArrayAdapter.createViewFromRes 
ource(ArrayAdapter.java:355) 
E/AndroidRuntime(2694):  at android.widget.ArrayAdapter.getView(ArrayAdap 
ter.java:323) 
E/AndroidRuntime(2694):  at android.widget.AbsListView.obtainView(AbsList 
View.java:1274) 
E/AndroidRuntime(2694):  at android.widget.ListView.makeAndAddView(ListVi 
ew.java:1668) 
E/AndroidRuntime(2694):  at android.widget.ListView.fillDown(ListView.jav 
a:637) 
E/AndroidRuntime(2694):  at android.widget.ListView.fillFromTop(ListView. 
java:694) 
E/AndroidRuntime(2694):  at android.widget.ListView.layoutChildren(ListVi 
ew.java:1521) 
E/AndroidRuntime(2694):  at android.widget.AbsListView.onLayout(AbsListVi 
ew.java:1113) 
E/AndroidRuntime(2694):  at android.view.View.layout(View.java:6830) 
E/AndroidRuntime(2694):  at android.widget.RelativeLayout.onLayout(Relati 
veLayout.java:900) 
E/AndroidRuntime(2694):  at android.view.View.layout(View.java:6830) 
E/AndroidRuntime(2694):  at android.widget.FrameLayout.onLayout(FrameLayo 
ut.java:333) 
E/AndroidRuntime(2694):  at android.view.View.layout(View.java:6830) 
E/AndroidRuntime(2694):  at android.widget.LinearLayout.setChildFrame(Lin 
earLayout.java:1119) 
E/AndroidRuntime(2694):  at android.widget.LinearLayout.layoutVertical(Li 
nearLayout.java:998) 
E/AndroidRuntime(2694):  at android.widget.LinearLayout.onLayout(LinearLa 
yout.java:918) 
E/AndroidRuntime(2694):  at android.view.View.layout(View.java:6830) 
E/AndroidRuntime(2694):  at android.widget.FrameLayout.onLayout(FrameLayo 
ut.java:333) 
E/AndroidRuntime(2694):  at android.view.View.layout(View.java:6830) 
E/AndroidRuntime(2694):  at android.view.ViewRoot.performTraversals(ViewR 
oot.java:996) 
E/AndroidRuntime(2694):  at android.view.ViewRoot.handleMessage(ViewRoot. 
java:1633) 
E/AndroidRuntime(2694):  at android.os.Handler.dispatchMessage(Handler.ja 
va:99) 
E/AndroidRuntime(2694):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(2694):  at android.app.ActivityThread.main(ActivityThrea 
d.java:4363) 
E/AndroidRuntime(2694):  at java.lang.reflect.Method.invokeNative(Native 
Method) 
E/AndroidRuntime(2694):  at java.lang.reflect.Method.invoke(Method.java:5 
21) 
E/AndroidRuntime(2694):  at com.android.internal.os.ZygoteInit$MethodAndA 
rgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(2694):  at com.android.internal.os.ZygoteInit.main(Zygot 
eInit.java:618) 
E/AndroidRuntime(2694):  at dalvik.system.NativeStart.main(Native Method) 

D/dalvikvm(2694): GC freed 6621 objects/343272 bytes in 126ms 
I/dalvikvm(2694): Uncaught exception thrown by finalizer (will be discarded): 
I/dalvikvm(2694): Ljava/lang/IllegalStateException;: Finalizing cursor android. 
[email protected] on login that has not been deactivated or 
closed 
I/dalvikvm(2694):  at android.database.sqlite.SQLiteCursor.finalize(SQLiteC 
ursor.java:596) 
I/dalvikvm(2694):  at dalvik.system.NativeStart.run(Native Method) 
I/dalvikvm(2694): Uncaught exception thrown by finalizer (will be discarded): 
I/dalvikvm(2694): Ljava/lang/IllegalStateException;: Finalizing cursor android. 
[email protected] on login that has not been deactivated or 
closed 
I/dalvikvm(2694):  at android.database.sqlite.SQLiteCursor.finalize(SQLiteC 
ursor.java:596) 
I/dalvikvm(2694):  at dalvik.system.NativeStart.run(Native Method) 
I/dalvikvm(2694): Uncaught exception thrown by finalizer (will be discarded): 
I/dalvikvm(2694): Ljava/lang/IllegalStateException;: Finalizing cursor android. 
[email protected] on login that has not been deactivated or 
closed 
I/dalvikvm(2694):  at android.database.sqlite.SQLiteCursor.finalize(SQLiteC 
ursor.java:596) 
I/dalvikvm(2694):  at dalvik.system.NativeStart.run(Native Method) 
I/Process ( 52): Sending signal. PID: 2694 SIG: 3 
I/dalvikvm(2694): threadid=7: reacting to signal 3 
I/dalvikvm(2694): Wrote stack trace to '/data/anr/traces.txt' 
I/Process (2694): Sending signal. PID: 2694 SIG: 9 
I/ActivityManager( 52): Process com.notification (pid 2694) has died. 
I/WindowManager( 52): WIN DEATH: Window{44d90538 com.notification/com.notifica 
tion.List1 paused=false} 
I/UsageStats( 52): Unexpected resume of com.android.launcher while already res 
umed in com.notification 
W/InputManagerService( 52): Window already focused, ignoring focus gain of: co 
[email protected] 
I/ActivityManager( 52): Start proc com.notification for broadcast com.notifica 
tion/.AlarmReceiver: pid=2706 uid=10034 gids={3003} 
D/ddm-heap(2706): Got feature list request 
D/dalvikvm(1152): GC freed 194 objects/8728 bytes in 88ms 
I/ActivityManager( 52): Starting activity: Intent { act=android.intent.action. 
MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.notification/ 
.NotificationActivity } 
I/ActivityManager( 52): Starting activity: Intent { cmp=com.notification/.Back 
ground } 
I/ActivityManager( 52): Displayed activity com.notification/.Background: 262 m 
s (total 8081 ms) 
D/dalvikvm( 234): GC freed 44 objects/2064 bytes in 134ms 
D/AndroidRuntime(2718): 
D/AndroidRuntime(2718): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 
D/AndroidRuntime(2718): CheckJNI is ON 
D/AndroidRuntime(2718): --- registering native functions --- 
D/ddm-heap(2718): Got feature list request 
D/PackageParser( 52): Scanning package: /data/app/vmdl67950.tmp 
I/PackageManager( 52): Removing non-system package:com.notification 
D/PackageManager( 52): Removing package com.notification 
D/PackageManager( 52): Services: com.notification.BackService 
D/PackageManager( 52): Receivers: com.notification.AlarmReceiver 
D/PackageManager( 52): Activities: com.notification.NotificationActivity com 
.notification.Form1 com.notification.Background com.notification.Bg com.notifica 
tion.List1 
W/InputManagerService( 52): Window already focused, ignoring focus gain of: co 
[email protected] 
D/PackageManager( 52): Scanning package com.notification 
I/PackageManager( 52): /data/app/vmdl67950.tmp changed; unpacking 
D/installd( 32): DexInv: --- BEGIN '/data/app/vmdl67950.tmp' --- 
D/dalvikvm(2724): DexOpt: load 40ms, verify 159ms, opt 2ms 
D/installd( 32): DexInv: --- END '/data/app/vmdl67950.tmp' (success) --- 
D/PackageManager( 52): Services: com.notification.BackService 
D/PackageManager( 52): Receivers: com.notification.AlarmReceiver 
D/PackageManager( 52): Activities: com.notification.NotificationActivity com 
.notification.Form1 com.notification.Background com.notification.Bg com.notifica 
tion.List1 
D/ActivityManager( 52): Uninstalling process com.notification 
D/ActivityManager( 52): Force removing process ProcessRecord{44e9eb48 2706:com 
.notification/10034} (com.notification/10034) 
I/Process ( 52): Sending signal. PID: 2706 SIG: 9 
D/ActivityManager( 52): Received spurious death notification for thread androi 
[email protected] 
I/installd( 32): move /data/dalvik-cache/[email protected]@[email protected] -> 
/data/dalvik-cache/[email protected]@[email protected] 
D/PackageManager( 52): New package installed in /data/app/com.notification.apk 

D/AndroidRuntime(2718): Shutting down VM 
D/dalvikvm(2718): DestroyJavaVM waiting for non-daemon threads to exit 
D/dalvikvm(2718): DestroyJavaVM shutting VM down 
D/dalvikvm(2718): HeapWorker thread shutting down 
D/dalvikvm(2718): HeapWorker thread has shut down 
D/jdwp (2718): JDWP shutting down net... 
I/dalvikvm(2718): Debugger has detached; object registry had 1 entries 
D/dalvikvm(2718): VM cleaning up 
D/dalvikvm(2718): LinearAlloc 0x0 used 623916 of 5242880 (11%) 
D/ActivityManager( 52): Uninstalling process com.notification 
I/dalvikvm(2718): JNI: AttachCurrentThread (from ???.???) 
E/AndroidRuntime(2718): ERROR: thread attach failed 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
700e5 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
20031 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
20030 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
50000 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
60000 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
60001 
D/dalvikvm(1152): GC freed 139 objects/5928 bytes in 230ms 
D/dalvikvm( 52): GC freed 14606 objects/863536 bytes in 259ms 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
700e5 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
20031 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
20030 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
50000 
D/dalvikvm( 52): GC freed 425 objects/17320 bytes in 275ms 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
60000 
W/ResourceType( 52): Resources don't contain package for resource number 0x7f0 
60001 
D/AndroidRuntime(2729): 
D/AndroidRuntime(2729): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 
D/AndroidRuntime(2729): CheckJNI is ON 
D/AndroidRuntime(2729): --- registering native functions --- 
D/ddm-heap(2729): Got feature list request 
I/ActivityManager( 52): Starting activity: Intent { act=android.intent.action. 
MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.notification/ 
.NotificationActivity } 
I/ActivityManager( 52): Start proc com.notification for activity com.notificat 
ion/.NotificationActivity: pid=2735 uid=10034 gids={3003} 
D/AndroidRuntime(2729): Shutting down VM 
D/dalvikvm(2729): DestroyJavaVM waiting for non-daemon threads to exit 
D/dalvikvm(2729): DestroyJavaVM shutting VM down 
D/dalvikvm(2729): HeapWorker thread shutting down 
D/dalvikvm(2729): HeapWorker thread has shut down 
D/jdwp (2729): JDWP shutting down net... 
I/dalvikvm(2729): Debugger has detached; object registry had 1 entries 
D/dalvikvm(2729): VM cleaning up 
E/AndroidRuntime(2729): ERROR: thread attach failed 
D/dalvikvm(2729): LinearAlloc 0x0 used 639500 of 5242880 (12%) 
D/dalvikvm( 30): GC freed 299 objects/11576 bytes in 264ms 
D/ddm-heap(2735): Got feature list request 
D/dalvikvm( 30): GC freed 57 objects/2432 bytes in 160ms 
D/dalvikvm( 30): GC freed 2 objects/48 bytes in 360ms 
I/ActivityManager( 52): Displayed activity com.notification/.NotificationActiv 
ity: 1204 ms (total 1204 ms) 
W/KeyCharacterMap(2735): No keyboard for id 0 
W/KeyCharacterMap(2735): Using default keymap: /system/usr/keychars/qwerty.kcm. 
bin 
I/ActivityManager( 52): Starting activity: Intent { cmp=com.notification/.Bg (
has extras) } 
I/ActivityManager( 52): Displayed activity com.notification/.Bg: 329 ms (total 
329 ms) 
D/dalvikvm(1152): GC freed 2454 objects/141000 bytes in 600ms 
I/ActivityManager( 52): Starting activity: Intent { cmp=com.notification/.List 
1 bnds=[0,152][480,248] } 
W/ActivityManager( 52): startActivity called from non-Activity context; forcin 
g Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=com.notification/.List1 bnds=[ 
0,152][480,248] } 
D/AndroidRuntime(2735): Shutting down VM 
W/dalvikvm(2735): threadid=3: thread exiting with uncaught exception (group=0x4 
001b188) 
E/AndroidRuntime(2735): Uncaught handler: thread main exiting due to uncaught e 
xception 
E/AndroidRuntime(2735): java.lang.NullPointerException 
E/AndroidRuntime(2735):  at android.widget.ArrayAdapter.createViewFromRes 
ource(ArrayAdapter.java:355) 
E/AndroidRuntime(2735):  at android.widget.ArrayAdapter.getView(ArrayAdap 
ter.java:323) 
E/AndroidRuntime(2735):  at android.widget.AbsListView.obtainView(AbsList 
View.java:1256) 
E/AndroidRuntime(2735):  at android.widget.ListView.measureHeightOfChildr 
en(ListView.java:1147) 
E/AndroidRuntime(2735):  at android.widget.ListView.onMeasure(ListView.ja 
va:1060) 
E/AndroidRuntime(2735):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime(2735):  at android.widget.RelativeLayout.measureChild(Re 
lativeLayout.java:554) 
E/AndroidRuntime(2735):  at android.widget.RelativeLayout.onMeasure(Relat 
iveLayout.java:377) 
E/AndroidRuntime(2735):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime(2735):  at android.view.ViewGroup.measureChildWithMargin 
s(ViewGroup.java:3023) 
E/AndroidRuntime(2735):  at android.widget.FrameLayout.onMeasure(FrameLay 
out.java:245) 
E/AndroidRuntime(2735):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime(2735):  at android.widget.LinearLayout.measureVertical(L 
inearLayout.java:464) 
E/AndroidRuntime(2735):  at android.widget.LinearLayout.onMeasure(LinearL 
ayout.java:278) 
E/AndroidRuntime(2735):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime(2735):  at android.view.ViewGroup.measureChildWithMargin 
s(ViewGroup.java:3023) 
E/AndroidRuntime(2735):  at android.widget.FrameLayout.onMeasure(FrameLay 
out.java:245) 
E/AndroidRuntime(2735):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime(2735):  at android.view.ViewRoot.performTraversals(ViewR 
oot.java:763) 
E/AndroidRuntime(2735):  at android.view.ViewRoot.handleMessage(ViewRoot. 
java:1633) 
E/AndroidRuntime(2735):  at android.os.Handler.dispatchMessage(Handler.ja 
va:99) 
E/AndroidRuntime(2735):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(2735):  at android.app.ActivityThread.main(ActivityThrea 
d.java:4363) 
E/AndroidRuntime(2735):  at java.lang.reflect.Method.invokeNative(Native 
Method) 
E/AndroidRuntime(2735):  at java.lang.reflect.Method.invoke(Method.java:5 
21) 
E/AndroidRuntime(2735):  at com.android.internal.os.ZygoteInit$MethodAndA 
rgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(2735):  at com.android.internal.os.ZygoteInit.main(Zygot 
eInit.java:618) 
E/AndroidRuntime(2735):  at dalvik.system.NativeStart.main(Native Method) 

I/Process ( 52): Sending signal. PID: 2735 SIG: 3 
I/dalvikvm(2735): threadid=7: reacting to signal 3 
I/dalvikvm(2735): Wrote stack trace to '/data/anr/traces.txt' 
W/ActivityManager( 52): Launch timeout has expired, giving up wake lock! 
W/ActivityManager( 52): Activity idle timeout for HistoryRecord{44dcace0 com.n 
otification/.List1} 
I/Process (2735): Sending signal. PID: 2735 SIG: 9 
I/ActivityManager( 52): Process com.notification (pid 2735) has died. 
I/WindowManager( 52): WIN DEATH: Window{44d8db78 com.notification/com.notifica 
tion.List1 paused=false} 
I/UsageStats( 52): Unexpected resume of com.android.launcher while already res 
umed in com.notification 
I/ActivityManager( 52): Start proc com.notification for broadcast com.notifica 
tion/.AlarmReceiver: pid=2745 uid=10034 gids={3003} 
W/InputManagerService( 52): Window already focused, ignoring focus gain of: co 
[email protected] 
E/gralloc ( 52): [unregister] handle 0x423290 still locked (state=40000001) 
D/ddm-heap(2745): Got feature list request 
D/dalvikvm(1152): GC freed 212 objects/9560 bytes in 82ms 
I/ActivityManager( 52): Starting activity: Intent { act=android.intent.action. 
MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.notification/ 
.NotificationActivity } 
I/ActivityManager( 52): Starting activity: Intent { cmp=com.notification/.Back 
ground } 
I/ActivityManager( 52): Displayed activity com.notification/.Background: 240 m 
s (total 16387 ms) 
D/dalvikvm( 234): GC freed 43 objects/2024 bytes in 152ms 
+1

请发布** Logcat **输出。 –

+0

@PareshMayani我在我的问题中添加了logcat文件 – suraj

+0

您的logcat指出可能因**结束游标android而导致异常。 [email protected]在登录时尚未被禁用或 已关闭** –

回答

1

更改为

<ListView 
    android:id="@+id/mylist" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

<ListView 
    android:id="@+id/mylist" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

为什么你需要listView.setVisibility(0)

+0

我在我的问题中添加了logcat文件。 – suraj

1
 final String[] values = new String[50]; 
    int i=0; 
    while(cur.moveToNext()) 
    { 

       values[i]=Integer.toString(cur.getInt(0))+":"+cur.getString(1)+":"+cur.getString(2);  
     i++; 
    } 

    cur.close(); 

从这个spinet代码开始。

db.query返回时,在开始在while循环中使用它之前,应该倒回光标。如果查询返回更多的50个结果会怎么样?你的应用程序会崩溃ArrayOutBoundException

+0

我一次不会超过50个值,所以这不是一个问题 – suraj

2

我认为你的适配器应该知道应该使用哪个textViewResourceId。 所以试试这个:ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,R.layout.list_item, R.id.tv1,values);

+0

试过这也是同样的问题。我在我的问题 – suraj

+0

中添加了logcat文件,看起来你的字符串数组中的一个值为空。检查了这一点:http://stackoverflow.com/questions/3544738/android-arrayadapter-createviewfromresourceint-view-viewgroup-int-line-3 – MLoydd