質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

889閲覧

動的に生成したテキストビューに文字列型配列を順次いれたい。

Yamamoto2020

総合スコア3

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/12/22 03:01

動的にテキストビューを生成し、そこにデータベースから取得したデータを入れるというプログラムを作成しています。
テキストビュー[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() { }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/12/23 07:32

NullPointerException の原因はたぶん TextView text[]; が null なのでしょう。 あと、動的に TextView を生成・追加するのは無駄が大きいので、とりあえず一つの TextView に追記するか、ListView または RecyclerView のご利用をお勧めします。
Yamamoto2020

2021/01/04 07:28

返信遅くなり申し訳ありません。 ListViewを利用する形に変更しました。 1つのTextViewのみだったのを増やそうとしてつい固執してしまいました。 問題点の指摘だけではなく、他の方法に変更することへのアドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問