Androidで編集画面に個人情報を入力し、登録ボタンを押すとメインページに反映されるというシステムを作りたいです。
名前と国籍を表示できるようにしたところ編集画面から入力しても名前の表示がなくなり、
ログにはnullの表示がされるようになってしまいました。
Cursorでget Stringを行なったときにnull表示がされる原因をご教示いただければ幸いです。
ちなみに、xmlには文字を表示していますが反映されておりません。
宜しくお願いいたします。---------
- package com.example.name.helloworld;
- import android.content.ContentValues;
- import android.content.Intent;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.support.v7.app.ActionBarActivity;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.Gravity;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- import static android.util.Log.v;
- public class EditProfile extends AppCompatActivity {
-
private Button submitView;
-
private EditText nameView;
-
private EditText countryView;
-
private SQLiteDatabase dbObj;
-
private View.OnClickListener submit_ClickListener = new View.OnClickListener(){
-
public void onClick(View v) {submit_Click(v);}};
-
private PersonOpenHelper dbHelper;
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_edit_profile);
-
dbHelper = new PersonOpenHelper(this);
-
submitView = (Button)findViewById(R.id.submit_btn);
-
submitView.setOnClickListener(submit_ClickListener);
-
nameView = (EditText) findViewById(R.id.edit_name);
-
String name = "";
-
name = getYourName();
- // v("tag", ":" + name);
-
//country
-
countryView =(EditText)findViewById(R.id.edit_country);
-
String country ="";
-
country = getYourCountry();
- // v("tag", ":" + country);
-
}
-
public void select_Object () {
-
dbObj = dbHelper.getReadableDatabase();
-
String sql = "SELECT id,name FROM profile_table";
-
Cursor c = dbObj.rawQuery(sql, null);
-
while (c.moveToNext()){
- // Map<String, Object> map;
- // map = new HashMap<String, Object>();
- // map.put("user_id", c.getInt(0)+"");
- // map.put("name", c.getString(1));
- // map.put("thumbnail", getThumbnail(c.getBlob(2),IMAGE_SIZE_NORMAL));
- // map.put("updated_at", c.getString(3));
- //
- // followData.add(map);
-
}
-
c.close();
-
dbObj.close();
-
}
-
/**
-
* getName
-
*/
-
public String getYourName () {
-
dbObj = dbHelper.getReadableDatabase();
-
String sql = "SELECT id,name FROM profile_table order by id desc";
-
Cursor c = dbObj.rawQuery(sql, null);
-
c.moveToFirst();
-
String name = "";
-
if (c.getCount() > 0) {
-
name = c.getString(1);
-
}
- // v("tag_name",c.getInt(0)+"");
-
c.close();
-
dbObj.close();
-
return name;
-
}
-
/**
-
* getCountry
-
*/
-
public String getYourCountry () {
-
dbObj = dbHelper.getReadableDatabase();
-
String sql = "SELECT id,country FROM profile_table order by id desc";
-
Cursor c = dbObj.rawQuery(sql, null);
-
c.moveToFirst();
-
String country = "";
-
if (c.getCount() > 0) {
-
country = c.getString(1);
-
}
-
// v("tag_country",c.getInt(0)+"");
-
c.close();
-
dbObj.close();
-
return country;
-
}
-
/**
-
* submit
-
*/
-
private void submit_Click (View v) {
-
String name = null;
-
name = nameView.getText().toString();
-
String country = null;
-
country = countryView.getText().toString();
-
if (name.equals(null) == true || name.equals("") == true){
-
Toast toast = Toast.makeText(getApplicationContext(), "名前を入力してください。", Toast.LENGTH_LONG);
-
toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT, 0, 0);
-
toast.show();
-
} else if (country.equals(null) == true || country.equals("") == true){
-
Toast toast = Toast.makeText(getApplicationContext(), "国籍を入力してください。", Toast.LENGTH_LONG);
-
toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT, 0, 0);
-
toast.show();
-
} else{
-
v("tag_name",name+"");
-
ContentValues values_name = new ContentValues();
-
values_name.put("name", name+"");
-
//データベースにここで入る
-
long y = insertDBCtr(values_name, "profile_table");
-
v("tag_country",country+"");
-
ContentValues values_country = new ContentValues();
-
values_country.put("country", country+"");
-
//データベースにここで入る
-
long z = insertDBCtr(values_country, "profile_table");
-
Intent intent = new Intent(this, MainActivity.class);
-
startActivity(intent);
-
}
-
}
-
/**
-
* db control
-
* @param values
-
* @param table
-
* @return
-
*/
-
public long insertDBCtr (ContentValues values,String table) {
-
SQLiteDatabase db = dbHelper.getWritableDatabase();
-
long ret;
-
try {
-
ret = db.insert(table, null, values);
-
} finally {
-
db.close();
-
}
-
return ret;
-
}
-
@Override
-
public boolean onCreateOptionsMenu(Menu menu) {
-
// Inflate the menu; this adds items to the action bar if it is present.
-
// getMenuInflater().inflate(R.menu.menu_edit_profile, menu);
-
return true;
-
}
-
@Override
-
public boolean onOptionsItemSelected(MenuItem item) {
-
// Handle action bar item clicks here. The action bar will
-
// automatically handle clicks on the Home/Up button, so long
-
// as you specify a parent activity in AndroidManifest.xml.
-
int id = item.getItemId();
-
//noinspection SimplifiableIfStatement
-
if (id == R.id.action_settings) {
-
return true;
-
}
-
return super.onOptionsItemSelected(item);
-
}
- }
あなたの回答
tips
プレビュー