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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Q&A

解決済

1回答

3274閲覧

Androidアプリで画面遷移を行いたいのですが…。

hamusuke1

総合スコア12

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

0グッド

0クリップ

投稿2016/01/08 06:41

現在、ボタンを押して画面遷移するアプリ<MainActivity.java>と
Sqliteのデータを書き込み<Main2Activity.java>、読み出し<Main3Activity>させるアプリを作ろうと試みています。
違うプロジェクトで画面遷移するだけ、Sqlteのデータを扱うだけのアプリを作成することには成功し
そこで使ったコードをxmlやjavaの名前などを対応させてほぼぞのまま利用しています。

レイアウトとして
メイン画面に二つのボタンを用意し
一つ目のボタンを押すとSqliteへのデータを書き込む画面へと遷移させ
二つ目のボタンを押すとsqliteへのデータを読み出す画面へと遷移させるつもりです。
しかし、その中で一つ目のボタンの画面遷移がうまくいきません。

現象としては
MainActivityのbutton1を
クリックしたとたんに「問題が発生しました」と表示され強制終了してしまいます。
button2ではちゃんとMain3Activityへと遷移するので
button1だけ問題が発生するというのはどういうことなのか、検討がつきません。
Manifestにもnameは登録しています。
誰か分かるかたぜひお力をお貸しください。

[MainActivity.java]

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ switch (view.getId()) { case R.id.button1: Intent intent = new Intent(this, Main2Activity.class); startActivity(intent); break; case R.id.button2: intent = new Intent(this, Main3Activity.class); startActivity(intent); break; } }

}

[Main2Avtivity.java]

import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Main2Activity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyOpenHelper helper = new MyOpenHelper(this); final SQLiteDatabase db = helper.getWritableDatabase(); final EditText ShopnameText = (EditText) findViewById(R.id.editShopName); final EditText CommentText = (EditText) findViewById(R.id.editComment); Button entryButton = (Button) findViewById(R.id.insert); entryButton.setOnClickListener(new View.OnClickListener() {/ @Override public void onClick(View v) { String Shopname = ShopnameText.getText().toString(); String Comment = CommentText.getText().toString(); ContentValues insertValues = new ContentValues(); insertValues.put("Shopname", Shopname);//項目設定 insertValues.put("Comment", Comment);//項目設定 long id = db.insert("Shops", null, insertValues); Toast toast = Toast.makeText(Main2Activity.this, "登録完了", Toast.LENGTH_SHORT); toast.show(); Intent dbIntent = new Intent(Main2Activity.this, Main3Activity.class); startActivity(dbIntent); } });

}

[Main3Actvity.java]

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Main3Activity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); MyOpenHelper helper = new MyOpenHelper(this); SQLiteDatabase db = helper.getReadableDatabase(); Cursor c = db.query("Shops", new String[] {"Shopname", "Comment"}, null, null, null, null, null); boolean mov = c.moveToFirst(); while (mov) { TextView textView = new TextView(this); textView.setText(String.format("%s : %s", c.getString(0), c.getString(1))); } c.close();//closeメソッドでカーソルを閉じておしまいです。 db.close(); }

}

[MyOpenHelper.java]

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyOpenHelper extends SQLiteOpenHelper {

public MyOpenHelper(Context context) { super(context, "TenpoTorokuDB", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table Shops(" + "_id INTEGER PRIMARY KEY," + "Shopname text not null,"+ "Comment text" + ");"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if( oldVersion == 1 && newVersion == 2 ){ db.execSQL("DROP TABLE IF EXISTS Shops;"); db.execSQL("create table Shops(" + "Shopname text not null,"+ "Comment text" + ");"); } }

}

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

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

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

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

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

guest

回答1

0

ベストアンサー

Main2ActivityでsetContentView(R.layout.activity_main);としていますが、レイアファイル名は正しいですか?

また、例外やエラーが発生した時に質問する場合はログキャットのログも追記してください。

投稿2016/01/08 06:51

yona

総合スコア18155

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

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

hamusuke1

2016/01/08 09:05

まさにそれでした!!! 本当にありがとうございました(><) 今後気をつけます。申し訳ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問