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

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

ただいまの
回答率

90.62%

  • GsACADEMY

    14questions

    セカイを変えるエンジニア【GEEK】を養成する 授業料後払いのエンジニア養成学校です。 ①一流企業によるメンター指導 基本習得後は2ヶ月間メンターの個別指導でサービス完成を目指します。 ②480万円までの起業支援出資 起業志望者をサムライインキュベートが支援(審査あり)します。 ③初心者歓迎・授業料後払い 丸暗記ではなく、創りながら。初心者のための授業料後払い制度です。

  • Java

    13524questions

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

  • Android

    6420questions

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

Android: Cursorの使い方

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 1,362

ke11y

score 12

Androidで編集画面に個人情報を入力し、登録ボタンを押すとメインページに反映されるというシステムを作りたいです。
名前と国籍を表示できるようにしたところ編集画面から入力しても名前の表示がなくなり、
ログにはnullの表示がされるようになってしまいました。
Cursorでget Stringを行なったときにnull表示がされる原因をご教示いただければ幸いです。
ちなみに、xmlには文字を表示していますが反映されておりません。
宜しくお願いいたします。---------

  1.  package com.example.name.helloworld;
  2.  import android.content.ContentValues;
  3.  import android.content.Intent;
  4.  import android.database.Cursor;
  5.  import android.database.sqlite.SQLiteDatabase;
  6.  import android.support.v7.app.ActionBarActivity;
  7.  import android.os.Bundle;
  8.  import android.support.v7.app.AppCompatActivity;
  9.  import android.view.Gravity;
  10.  import android.view.Menu;
  11.  import android.view.MenuItem;
  12.  import android.view.View;
  13.  import android.widget.Button;
  14.  import android.widget.EditText;
  15.  import android.widget.TextView;
  16.  import android.widget.Toast;
  17.  
  18.  import static android.util.Log.v;
  19.  
  20.  
  21.  public class EditProfile extends AppCompatActivity {
  22.  
  23.      private Button submitView;
  24.  
  25.      private EditText nameView;
  26.  
  27.      private EditText countryView;
  28.  
  29.      private SQLiteDatabase dbObj;
  30.  
  31.      private View.OnClickListener submit_ClickListener = new View.OnClickListener(){
  32.          public void onClick(View v) {submit_Click(v);}};
  33.  
  34.      private PersonOpenHelper dbHelper;
  35.  
  36.  
  37.      @Override
  38.      protected void onCreate(Bundle savedInstanceState) {
  39.          super.onCreate(savedInstanceState);
  40.          setContentView(R.layout.activity_edit_profile);
  41.  
  42.  
  43.          dbHelper = new PersonOpenHelper(this);
  44.          submitView = (Button)findViewById(R.id.submit_btn);
  45.          submitView.setOnClickListener(submit_ClickListener);
  46.  
  47.          nameView = (EditText) findViewById(R.id.edit_name);
  48.          String name = "";
  49.          name = getYourName();
  50.   //       v("tag", ":" + name);
  51.  
  52.          //country
  53.          countryView =(EditText)findViewById(R.id.edit_country);
  54.          String country ="";
  55.          country = getYourCountry();
  56.  //        v("tag", ":" + country);
  57.  
  58.      }
  59.  
  60.  
  61.      public void select_Object () {
  62.  
  63.  
  64.          dbObj = dbHelper.getReadableDatabase();
  65.  
  66.          String sql = "SELECT id,name FROM profile_table";
  67.          Cursor c = dbObj.rawQuery(sql, null);
  68.  
  69.  
  70.          while (c.moveToNext()){
  71.  
  72.  //            Map<String, Object> map;
  73.  //            map = new HashMap<String, Object>();
  74.  //            map.put("user_id", c.getInt(0)+"");
  75.  //            map.put("name", c.getString(1));
  76.  //            map.put("thumbnail", getThumbnail(c.getBlob(2),IMAGE_SIZE_NORMAL));
  77.  //            map.put("updated_at", c.getString(3));
  78.  //
  79.  //            followData.add(map);
  80.  
  81.  
  82.          }
  83.          c.close();
  84.  
  85.          dbObj.close();
  86.  
  87.      }
  88.  
  89.  
  90.      /**
  91.       * getName
  92.       */
  93.      public String getYourName () {
  94.  
  95.          dbObj = dbHelper.getReadableDatabase();
  96.  
  97.          String sql = "SELECT id,name FROM profile_table order by id desc";
  98.          Cursor c = dbObj.rawQuery(sql, null);
  99.  
  100.          c.moveToFirst();
  101.          String name = "";
  102.          if (c.getCount() > 0) {
  103.              name = c.getString(1);
  104.          }
  105.  //        v("tag_name",c.getInt(0)+"");
  106.          c.close();
  107.  
  108.          dbObj.close();
  109.  
  110.          return name;
  111.  
  112.  
  113.      }
  114.  
  115.      /**
  116.       * getCountry
  117.       */
  118.      public String getYourCountry () {
  119.  
  120.          dbObj = dbHelper.getReadableDatabase();
  121.  
  122.          String sql = "SELECT id,country FROM profile_table order by id desc";
  123.          Cursor c = dbObj.rawQuery(sql, null);
  124.  
  125.          c.moveToFirst();
  126.          String country = "";
  127.          if (c.getCount() > 0) {
  128.              country = c.getString(1);
  129.          }
  130.      //    v("tag_country",c.getInt(0)+"");
  131.          c.close();
  132.  
  133.          dbObj.close();
  134.  
  135.          return country;
  136.  
  137.  
  138.      }
  139.  
  140.  
  141.      /**
  142.       * submit
  143.       */
  144.      private void  submit_Click (View v) {
  145.  
  146.          String name = null;
  147.          name = nameView.getText().toString();
  148.  
  149.          String country = null;
  150.          country = countryView.getText().toString();
  151.  
  152.          if (name.equals(null) == true || name.equals("") == true){
  153.              Toast toast = Toast.makeText(getApplicationContext(), "名前を入力してください。", Toast.LENGTH_LONG);
  154.              toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT, 0, 0);
  155.              toast.show();
  156.          } else  if (country.equals(null) == true || country.equals("") == true){
  157.              Toast toast = Toast.makeText(getApplicationContext(), "国籍を入力してください。", Toast.LENGTH_LONG);
  158.              toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT, 0, 0);
  159.              toast.show();
  160.          } else{
  161.          v("tag_name",name+"");
  162.          ContentValues values_name = new ContentValues();
  163.          values_name.put("name", name+"");
  164.              //データベースにここで入る
  165.          long y = insertDBCtr(values_name, "profile_table");
  166.  
  167.              v("tag_country",country+"");
  168.              ContentValues values_country = new ContentValues();
  169.              values_country.put("country", country+"");
  170.              //データベースにここで入る
  171.              long z = insertDBCtr(values_country, "profile_table");
  172.              Intent intent = new Intent(this, MainActivity.class);
  173.              startActivity(intent);
  174.          }
  175.      }
  176.  
  177.  
  178.      /**
  179.       * db control
  180.       * @param values
  181.       * @param table
  182.       * @return
  183.       */
  184.      public long insertDBCtr (ContentValues values,String table) {
  185.  
  186.          SQLiteDatabase db = dbHelper.getWritableDatabase();
  187.          long ret;
  188.          try {
  189.              ret = db.insert(table, null, values);
  190.  
  191.          } finally {
  192.              db.close();
  193.          }
  194.  
  195.          return ret;
  196.  
  197.      }
  198.  
  199.  
  200.  
  201.      @Override
  202.      public boolean onCreateOptionsMenu(Menu menu) {
  203.          // Inflate the menu; this adds items to the action bar if it is present.
  204.      //    getMenuInflater().inflate(R.menu.menu_edit_profile, menu);
  205.          return true;
  206.      }
  207.  
  208.      @Override
  209.      public boolean onOptionsItemSelected(MenuItem item) {
  210.          // Handle action bar item clicks here. The action bar will
  211.          // automatically handle clicks on the Home/Up button, so long
  212.          // as you specify a parent activity in AndroidManifest.xml.
  213.          int id = item.getItemId();
  214.  
  215.          //noinspection SimplifiableIfStatement
  216.          if (id == R.id.action_settings) {
  217.              return true;
  218.          }
  219.  
  220.          return super.onOptionsItemSelected(item);
  221.      }
0. }
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

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

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • GsACADEMY

    14questions

    セカイを変えるエンジニア【GEEK】を養成する 授業料後払いのエンジニア養成学校です。 ①一流企業によるメンター指導 基本習得後は2ヶ月間メンターの個別指導でサービス完成を目指します。 ②480万円までの起業支援出資 起業志望者をサムライインキュベートが支援(審査あり)します。 ③初心者歓迎・授業料後払い 丸暗記ではなく、創りながら。初心者のための授業料後払い制度です。

  • Java

    13524questions

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

  • Android

    6420questions

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