現在、ただのLinearLayout上にsqlite内のデータを表示させることは
できたのですが
それをlistview上に表示させようとするとうまくいきません。
実行すると
R.layout.activity_main3に移る瞬間で
問題が発生したため(アプリ名)を終了します。
となります。
Java
1 2Main3Activity.java↓ 3 4 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import android.support.v7.app.AppCompatActivity; 8import android.os.Bundle; 9import android.util.Log; 10import android.view.Menu; 11import android.view.MenuItem; 12import android.view.View; 13import android.widget.AdapterView; 14import android.widget.LinearLayout; 15import android.widget.ListView; 16import android.widget.SimpleCursorAdapter; 17import android.widget.TextView; 18 19public class Main3Activity extends AppCompatActivity { 20 21 ListView myListView; 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3);// setContentViewでlayout(show_database)を置く 27 28 29 LinearLayout layout = new LinearLayout(this); 30 layout.setOrientation(LinearLayout.VERTICAL); 31 32 setContentView(layout); *ここの部分を削除すると正常に動くようになりました。 33 34 35 myListView = (ListView)findViewById(R.id.itemListView); 36 37 MyOpenHelper helper = new MyOpenHelper(this); 38 39 SQLiteDatabase db = helper.getReadableDatabase(); 40 41 Cursor c = db.rawQuery 42 43 //表示するカラム名 44 String[] from = {"Shopname","_id"}; 45 //バインドするViewリソース 46 int[] to = {android.R.id.text1,android.R.id.text2}; 47 48 //adapter生成 49 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,c,from,to,0); 50 51 //bindして表示 52 myListView.setAdapter(adapter); 53 54 //クリックしたとき各行のデータ(特に_id)を取得 55 myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 56 @Override 57 public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 58 59 //各要素を取得 60 String s1 = ((TextView) view.findViewById(android.R.id.text1)).getText().toString(); 61 String s2 = ((TextView) view.findViewById(android.R.id.text2)).getText().toString(); 62 63 Log.v("tama", "position=" + s1); 64 Log.v("tama", "position=" + s2); 65 } 66 }); 67 68 //loop(いらない) 69 while(c.moveToNext()){ 70 Log.v("tama", c.getString(c.getColumnIndex("Shopname"))); 71 } 72 73 } 74 75 76}
java
1activity_main3に移る際の 2logcat↓ 3 4 504-22 14:52:09.370 28578-28578/com.example.sample.liflogaplicationtukurinaosi W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41fc7ba8) 604-22 14:52:09.370 28578-28578/com.example.sample.liflogaplicationtukurinaosi E/AndroidRuntime﹕ FATAL EXCEPTION: main 7 Process: com.example.sample.liflogaplicationtukurinaosi, PID: 28578 8 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sample.liflogaplicationtukurinaosi/com.example.sample.liflogaplicationtukurinaosi.Main3Activity}: java.lang.NullPointerException 9 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 10 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 11 at android.app.ActivityThread.access$800(ActivityThread.java:135) 12 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 13 at android.os.Handler.dispatchMessage(Handler.java:102) 14 at android.os.Looper.loop(Looper.java:136) 15 at android.app.ActivityThread.main(ActivityThread.java:5017) 16 at java.lang.reflect.Method.invokeNative(Native Method) 17 at java.lang.reflect.Method.invoke(Method.java:515) 18 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 19 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 20 at dalvik.system.NativeStart.main(Native Method) 21 Caused by: java.lang.NullPointerException 22 at com.example.sample.liflogaplicationtukurinaosi.Main3Activity.onCreate(Main3Activity.java:82) 23 at android.app.Activity.performCreate(Activity.java:5231) 24 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 25 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 26 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 27 at android.app.ActivityThread.access$800(ActivityThread.java:135) 28 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 29 at android.os.Handler.dispatchMessage(Handler.java:102) 30 at android.os.Looper.loop(Looper.java:136) 31 at android.app.ActivityThread.main(ActivityThread.java:5017) 32 at java.lang.reflect.Method.invokeNative(Native Method) 33 at java.lang.reflect.Method.invoke(Method.java:515) 34 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 35 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 36 at dalvik.system.NativeStart.main(Native Method) 37
java
1activity_main3.xml 2 3<?xml version="1.0" encoding="utf-8"?> 4 5<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" > 9 10 <ListView 11 android:layout_height="wrap_content" 12 android:id="@+id/itemListView" 13 android:layout_width="match_parent" 14 android:layout_weight="1"/> 15 16 <LinearLayout 17 android:layout_height="wrap_content" 18 android:layout_width="match_parent"> 19 20 </LinearLayout> 21 22 <Button 23 android:id="@+id/deleteAll" 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:text="全削除" 27 ></Button> 28 29</LinearLayout>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/22 06:45
2016/04/22 07:03
2016/04/22 07:59
2016/04/22 08:07
2016/04/22 09:49
2016/04/22 10:21 編集
2016/04/22 10:33 編集
2016/04/22 10:49
2016/04/22 13:12
2016/04/22 13:58
2016/04/24 00:36
2016/04/24 00:48
2016/04/24 01:27