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

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

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

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

Android

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

Android Studio

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

Q&A

0回答

310閲覧

android studio メモ帳が繰り返し停止してしまいます。

yamabikobiko

総合スコア9

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2018/08/23 06:03

今、android studio でメモ帳アプリを作成しています。
参考にしているサイトはhttps://high-programmer.com/2017/09/02/android-studio-memo-app-2/です。

困っていること
アプリを起動しようとすると繰り返し停止しています。と出ます。

試したこと
if文やfor文などの見直し。

コード
MainActivity.java
package com.example.keisuke.memo;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.TwoLineListItem;
import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

MemoOpenHelper helper=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(helper==null){ helper=new MemoOpenHelper(MainActivity.this); } ArrayList<HashMap<String,String>>tmpList=new ArrayList<>(); SQLiteDatabase db=helper.getWritableDatabase(); try{ Cursor c=db.rawQuery("select uuid,body from MEMO_TABLE order by id",null); boolean next =c.moveToFirst(); while (next){ HashMap<String,String>data=new HashMap<>(); String uuid=c.getString(0); String body=c.getString(1); if(body.length()>10){ body=body.substring(0,11)+"..."; } data.put("body",body); data.put("id",uuid); ListView lv = (ListView)findViewById(R.id.memoList); ArrayAdapter<String> adp = new ArrayAdapter<>(getApplicationContext(), R.layout.activity_main); adp.add(""); lv.setAdapter(adp); next=c.moveToNext(); } }finally { db.close(); } for (int i=1;i<=5;i++){ HashMap<String,String>data=new HashMap<>(); data.put("body","サンプルデータ"+i); data.put("id","sampleId"+i); tmpList.add(data); } SimpleAdapter simpleAdapter = new SimpleAdapter(this, tmpList, android.R.layout.simple_list_item_2, new String[]{"body","id"}, new int[]{android.R.id.text1, android.R.id.text2}); ListView listView = (ListView) findViewById(R.id.memoList); listView.setAdapter(simpleAdapter); //リスト項目をクリックしたときの処理 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //インデント作成 第二引数にはパッケージ名からの指定で、遷移クラスを指定 Intent intent = new Intent(MainActivity.this,com.example.keisuke.memo.CreateMemoActivity.class); //選択されたビューを取得 TwoLineListItemを取得した後、text2の値を取得する TwoLineListItem two = (TwoLineListItem)view; TextView idTextView = (TextView)two.getText2(); String isStr = (String) idTextView.getText(); //値を引き渡す(識別名、値)の順番で指定sます intent.putExtra("id", isStr); //Activity起動 startActivity(intent); } }); }

}
CreateMemoActivity.java
package com.example.keisuke.memo;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.util.UUID;

public class CreateMemoActivity extends AppCompatActivity {

MemoOpenHelper helper=null; boolean newFlag=false; String id=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_memo); if(helper==null){ helper=new MemoOpenHelper(CreateMemoActivity.this); } Intent intent=this.getIntent(); id=intent.getStringExtra("id"); if(id.equals("")){ newFlag=true; }else{ SQLiteDatabase db=helper.getWritableDatabase(); try{ Cursor c=db.rawQuery("select body from MEMO_TABLE where uuid='"+id +"'",null); boolean next=c.moveToFirst(); while (next){ String dispBody=c.getString(0); EditText body=(EditText)findViewById(R.id.body); body.setText(dispBody, TextView.BufferType.NORMAL); next=c.moveToNext(); } }finally { db.close(); } } Button registerButton =(Button)findViewById(R.id.register); registerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText body=(EditText)findViewById(R.id.body); String bodyStr=body.getText().toString(); SQLiteDatabase db=helper.getWritableDatabase(); try{ if(newFlag){ id= UUID.randomUUID().toString(); db.execSQL("insert into MEMO_TABLE(uuid,body) VALUES('"+id+"','"+bodyStr+"')"); }else{ db.execSQL(("updata MEMO_TABLE set body='"+bodyStr+"' where uuid='"+id+"'")); } }finally { db.close(); } Intent intent=new Intent(CreateMemoActivity.this,com.example.keisuke.memo.MainActivity.class); startActivity(intent); } }); Button backButton=(Button)findViewById(R.id.back); backButton.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ finish(); } }); }

}

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/08/23 15:16

エラーの内容を書いてください。
keicha_hrs

2018/08/24 13:47

ソースコードはそれ専用の修飾をかけてください。インデントのないコードは、見る方にとっては苦痛でしかありません。それから、Android Studioではアプリの動作をLogCatというビューにログが表示されます。エラーが発生したときは、ログに赤字でエラーメッセージが表示されているはずです。プログラムがうまく動かないときは、まずそこから情報を得るのが第一です。それで調査を行った上で尚不明点があるのならば、エラーメッセージを提示した上で質問するのが筋道です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問