sqlLiteデータベースのデータをリストビューに取り込もうとしています。Android - リストビューにデータを埋め込む
以下は、cursoradapterを使用してリストビューにデータをフェッチしようとしているコードです。
public class TransactionActivity extends AppCompatActivity {
DBOperations dbOperations;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transaction);
lv=(ListView)findViewById(R.id.listView);
dbOperations=new DBOperations(TransactionActivity.this);
Cursor tablecursor = dbOperations.getTableRecords(DBOperations.TABLE_TRANSACTIONS);
Myadapter sca = new Myadapter(TransactionActivity.this,tablecursor,true);
lv.setAdapter(sca);
}
public class Myadapter extends CursorAdapter{
public Myadapter(Context context,Cursor tablecursor, boolean autoRequery){
super(context,tablecursor,autoRequery);}
@Override
public View newView(Context context, Cursor tablecursor, ViewGroup viewGroup) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.listitem, viewGroup, false);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
cursor.moveToFirst();
TextView Accnameview = (TextView)findViewById(R.id.textView);
TextView Incomevalueview=(TextView)findViewById(R.id.textView2);
String accname = cursor.getString(cursor.getColumnIndex(DBOperations.COL_ACC_NAME));
String incomev =cursor.getString(cursor.getColumnIndex(DBOperations.COL_DEBIT));
Accnameview.setText(accname);
Incomevalueview.setText(incomev);
}
}
}
膨張さlistview.xmlはそうしようとしたとき、私は以下のエラーを取得しています
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@android:color/darker_gray">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/textView2"
android:layout_gravity="right" />
です。
9月21日09:13:04.715 10142から10142/com.example.joshigir.finance D/OpenGLRenderer:13:0:09から21 09デバッグモードを有効45.007 10142から10142/com.example .joshigir.finance W/EGL_genymotion: eglSurfaceAttribが実装されていない09-21 09:13:46.507 10142-10142/com.example.joshigir.finance D/AndroidRuntime:シャットダウン down VM 09-21 09:13:46.507 10142- 10142/com.example.joshigir.finance W/dalvikvm:threadid = 1:キャッチされていない例外で終了するスレッド (グループ= 0xa4c96b20)09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:FATAL E XCEPTION:メイン09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:プロセス: com.example.joshigir.finance、PID:10142 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: java.lang.NullPointerException 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: com.example .joshigir.finance.TransactionActivity $ Myadapter.bindView(TransactionActivity.java:69) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.CursorAdapter。 getView(CursorAdapter.java:254)09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRunti私: android.widget.AbsListView.obtainView(AbsListView.java:2255)で9月21日 09:13:46.507 10142から10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.ListViewで.measureHeightOfChildren(ListView.java:1263) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.ListView.onMeasure(ListView.java:1175) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure(View.java:16497) 09-21 09:13:46.507 10142 -10142/com.example.joshigir.finance E/AndroidRuntime:at android.widget.RelativeLayout.measureChildHorizontal(R elactLayout.java:719) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure(View.java:16497) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 09-21 09:13:46.507 10142-10142/com.example.joshigir。金融 E/AndroidRuntime: android.widget.FrameLayout.onMeasure(FrameLayout.java:310)で09から21 09:13:46.507 10142から10142/com.example.joshigir.finance E/AndroidRuntime: アンドロイドで.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure (View.java:16497) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 09 -21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:391) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View .measure(View.java:16497) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 9月21日09:13:46.507 10142から10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.FrameLayout.onMeasure(FrameLayout.java:310)で09から21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure(View.java:16497) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 09-21 09:13:46.507 10142-10142/com.example.joshigir E/AndroidRuntimeを.finance:13:46.507 10142から10142/com.example.joshigir.finance E/AndroidRuntime: android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 9月21日09時 でandroid.widget.LinearLayout.onMeasure(LinearLayout.java:588)09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure(View.java:16497) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:13:46.507 10142から10142/com.example.joshigir.finance E android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 9月21日09時/ AndroidRuntime:13:46.507 10142から10142/com.example.joshigir.finance E/AndroidRuntime: com.androidでandroid.widget.FrameLayout.onMeasure(FrameLayout.java:310)09から21 09で。 internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2291) 09-21 09:13:46.507 10142-10142/com.example.joshigir.finance E/AndroidRuntime:android.view.View.measure(View.java:16497)
では、親切にエラーを見つけるのに役立ちます。あなたはこのように、方法のview
属性にfindViewById(int)
を呼び出す必要が
TextView Accnameview = (TextView)findViewById(R.id.textView);
TextView Incomevalueview=(TextView)findViewById(R.id.textView2);
:Myadapter
クラスからあなたのbindView(View, Context, Cursor)
方法で
は親切にあなたのアダプタクラスnullポインタ例外は、あなたがnullである事をアクセスしようとしているか、それ 'R.layout.listitem'または' R.layout.listview'ある –
初期化されていない可能性がありますが意味している投稿します - ただのタイプミス?あなたはおそらく 'Cursor tablecursor = dbOperations.getTableRecords(DBOperations.TABLE_TRANSACTIONS);'がnullを返すことを想定することができます。あなたはカーソル上でヌルチェックをしないでおそらくここにスローされます: 'cursor.moveToFirst();' –