動的にテキストビューを生成し、そこにデータベースから取得したデータを入れるというプログラムを作成しています。
テキストビュー[1]に文字列型変数[1]を、テキストビュー[2]に文字列型変数[2]を入れるという風にするのが最終的な目的です。
データベースからデータを取得するところまではできているのですが、テキストビューにそのデータを埋め込もうとするとエラーが出てしまいます。
エラーコードは
java.lang.NullPointerException: Attempt to write to null arrayです。配列を準備できていないということはわかりましたが、どこがダメなのかわかりません。お手間をおかけしますが、よろしくお願いします。
package com.websarva.wings.android.test;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.content.Intent;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class kekkaActivity extends Activity {
/**
* Called when the activity is first created.
*/
TextView a;
/新規に記述中/
int r, b;
SQLiteDatabase TouristAttractionsDB;
TouristAttractionsDataTestSQLiteOpenHelper helper;
LinearLayout layout;
TextView text[];
/*ここまで*/ /*新規に記述中*/ /*ここまで*/ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_kekka); a = findViewById(R.id.a); TextView a = findViewById(R.id.a); Intent intent = getIntent(); String data = intent.getStringExtra("searchresults"); /*新規に記述中*/ /*ここまで*/ /*新規に記述中*/ helper = new TouristAttractionsDataTestSQLiteOpenHelper(getApplicationContext()); try { TouristAttractionsDB = helper.getReadableDatabase(); Cursor cursor = TouristAttractionsDB.query( "touristattractionsdb", new String[]{ " name " , " address " },/*本当はcolumnsをこっちにnew String[]{"_id","name", "address"}*/ null, null, null, null, null ); cursor.moveToFirst(); StringBuilder sbuider = new StringBuilder(); for (int i = 0; i < cursor.getCount(); i++) { sbuider.append(cursor.getString(0)); sbuider.append(("")); sbuider.append(cursor.getString(1)); sbuider.append(("")); cursor.moveToNext(); if (sbuider.toString().contains(data)) { String sample = intent.getStringExtra("sbuider"); /*新規に記述中*/ for(int r=0; r<cursor.getCount(); r++) { text[r] = new TextView(this); LinearLayout layout = new LinearLayout(this); layout.addView(text[r]); setContentView(layout); /*ここまで*/ text[r].setText(sample); } } } a.setText(sbuider.toString()); cursor.close(); /*ここまで*/ }catch (SQLiteException e){ return; } /*a.setOnClickListener(new View.OnClickListener() { }
}
あなたの回答
tips
プレビュー