2016-10-15 18 views
-2

私はアプリケーションを持っています。私はデータベースにデータを挿入する。他のアクティビティからそのデータを取得し、EditTextに挿入したいと思います。ここに私のMainActivity.javaファイルされる:別のアクティビティでデータを取得する

package com.example.vaibhav.splashscr; 

import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.AlertDialog; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.Toast; 

public class MainActivity extends Activity { 


    InformationHelper mydb; 



    EditText editTextName, editTextMobileNo, editTextCity, editTextAddress, editTextPin; 
    RadioButton radioButtongender; 
    RadioGroup radioGroup; 

    Button submit, view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     mydb = new InformationHelper(this); 

     editTextName = (EditText) findViewById(R.id.editTextName); 
     editTextMobileNo = (EditText) findViewById(R.id.editTextMobileNumber); 
     radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 
     editTextCity = (EditText) findViewById(R.id.editTextCity); 
     editTextAddress = (EditText) findViewById(R.id.editTextAddress); 
     editTextPin = (EditText) findViewById(R.id.editTextPincode); 
     submit = (Button) findViewById(R.id.submit); 
     view = (Button) findViewById(R.id.view); 
//Two methods 
     addData(); 
     viewAllData(); 

    } 

    public void addData() { 
     submit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int select = radioGroup.getCheckedRadioButtonId(); 
       radioButtongender = (RadioButton) findViewById(select); 
       boolean isInsert = mydb.insertData(editTextName.getText().toString(), editTextMobileNo.getText().toString(), 
         radioButtongender.getText().toString(), editTextCity.getText().toString(), 
         editTextAddress.getText().toString(), editTextPin.getText().toString()); 

       if (isInsert = true) { 
        Toast.makeText(MainActivity.this, "Data Inserted", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(MainActivity.this, "Data Not Inserted", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 

    public void viewAllData() { 
     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Cursor res = mydb.getAllData(); 
       if (res.getCount() == 0) { 
        //show error 
        showMessage("Error", "No data found"); 
        return; 
       } 


       StringBuffer stringBuffer = new StringBuffer(); 
       while (res.moveToNext()) { 
        stringBuffer.append("Id :" + res.getString(0) + "\n"); 
        stringBuffer.append("Name :" + res.getString(1) + "\n"); 
        stringBuffer.append("Mobile NO :" + res.getString(2) + "\n"); 
        stringBuffer.append("Gender :" + res.getString(3) + "\n"); 
        stringBuffer.append("City :" + res.getString(4) + "\n"); 
        stringBuffer.append("Address :" + res.getString(5) + "\n"); 
        stringBuffer.append("Pincode :" + res.getString(6) + "\n"); 

        showMessage("data", stringBuffer.toString()); 
       } 
      } 
     }); 
    } 
//I have done it through AlertDialog. I want it on another activity 
    public void showMessage(String title, String Message) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setCancelable(true); 
     builder.setTitle(title); 
     builder.setMessage(Message); 
     builder.show(); 
    } 
} 

ここに私のactivity_main.xmlファイルされる:これを実現する方法について

// this is the logic to insert the data in database 

package com.example.vaibhav.splashscr; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

/** 
* Created by vaibhav on 15-10-2016. 
*/ 
public class InformationHelper extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "Details_Database"; 
    private static final String TABLE_NAME = "Information"; 
    private static final int DATABASE_VERSION = 1; 
    private static final String UID = "_id"; 
    private static final String NAME = "Name"; 
    private static final String MOBILE_NO = "Mobile_no"; 
    private static final String GENDER = "Gender"; 
    private static final String CITY = "City"; 
    private static final String ADDRESS = "Address"; 
    private static final String PINCODE = "Pincode"; 

    private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NAME + " VARCHAR(50), " + 
      "" + MOBILE_NO + " VARCHAR(10), " + GENDER + " VARCHAR(7), " + CITY + " VARCHAR(30), " + 
      "" + ADDRESS + " VARCHAR(50), " + PINCODE + " VARCHAR(9));"; 

    private static final String DROP_TABLE = "DROP TABLE" + TABLE_NAME + "IF EXISTS"; 

    public InformationHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 


    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     //CREATING THE DATABASE FOR THE FIRST TIME 

     db.execSQL(CREATE_TABLE); 


    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL(DROP_TABLE); 
     onCreate(db); 
    } 

    public boolean insertData(String name, String mobile, String gender, String city, String address, String pincode) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 

     contentValues.put(NAME, name); 
     contentValues.put(MOBILE_NO, mobile); 
     contentValues.put(GENDER, gender); 
     contentValues.put(CITY, city); 
     contentValues.put(ADDRESS, address); 
     contentValues.put(PINCODE, pincode); 
     long result = db.insert(TABLE_NAME, null, contentValues); 
     if (result == -1) { 
      return false; 
     } else 
      return true; 
    } 

//i have done it throught alertDialog. i want it to retrieve on another activity 
//using editText or TextView 


    public Cursor getAllData() { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor res = db.rawQuery("select * from" +" "+ TABLE_NAME, null); 
     return res; 
    } 
} 

任意の提案:

//this the xml file where i have name, address, pincode, gender and other //details 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editTextName" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 

      android:paddingLeft="5dp" 
      android:text="Name: " 

      android:textSize="20dp" /> 

     <EditText 
      android:id="@+id/editTextName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/name" 
      android:layout_weight="1" 
      android:hint="First Name" /> 
    </LinearLayout> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/mobilenumber" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editTextMobileNumber" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 

      android:paddingLeft="3dp" 
      android:text="Mobile No:" 

      android:textSize="20dp" /> 

     <EditText 
      android:id="@+id/editTextMobileNumber" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/name" 
      android:layout_weight="1" 
      android:hint="Mobile Number" 
      android:width="145dp"/> 
    </LinearLayout> 




    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="10dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/gender" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/radioGroup" 
      android:layout_weight="0.1" 
      android:gravity="center_vertical" 
      android:text="Gender: " 
      android:textSize="20dp" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

      <RadioGroup 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal" 
       android:id="@+id/radioGroup" 
       android:layout_marginLeft="100dp" 

       android:weightSum="1"> 

       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Male" 
        android:id="@+id/radioButtonMale" 
        android:layout_gravity="center_horizontal" 
        android:checked="false" 
        android:layout_marginRight="1dp" 
        android:textSize="20dp" /> 


       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Female" 
        android:layout_marginLeft="10dp" 
        android:id="@+id/radioButtonFemale" 
        android:layout_gravity="center_horizontal" 
        android:checked="false" 

        android:textSize="20dp"/> 

      </RadioGroup> 
     </LinearLayout> 
    </LinearLayout> 



    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/city" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editTextName" 
      android:layout_weight="0.86" 
      android:gravity="center_vertical" 

      android:paddingLeft="5dp" 
      android:text="City: " 

      android:textSize="20dp" /> 

     <EditText 
      android:id="@+id/editTextCity" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/name" 
      android:layout_weight="1.14" 
      android:hint="City" /> 
    </LinearLayout> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/address" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editTextName" 
      android:layout_weight="0.80" 
      android:gravity="center_vertical" 

      android:paddingLeft="5dp" 
      android:text="Address: " 

      android:textSize="20dp" /> 
     <EditText 
      android:id="@+id/editTextAddress" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/name" 
      android:layout_weight="1.2" 
      android:hint="Address" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" 
     android:weightSum="2"> 

     <TextView 
      android:id="@+id/pincode" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editTextName" 
      android:layout_weight="0.86" 
      android:gravity="center_vertical" 

      android:paddingLeft="5dp" 
      android:text="Pincode" 
      android:textSize="20dp" /> 
     <EditText 
      android:id="@+id/editTextPincode" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/name" 
      android:layout_weight="1.14" 
      android:hint="Pincode" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_gravity="center" 
     android:paddingTop="25dp"> 
     <Button 

      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Submit" 
      android:id="@+id/submit" 
      android:textColor="@android:color/holo_red_dark"/> 
     <Button 
      android:id="@+id/view" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="View " 
      android:textColor="@android:color/holo_red_dark" 
      android:textAlignment="center" 
      android:layout_marginLeft="30dp"/> 
    </LinearLayout> 



</LinearLayout> 

ここに私のInformationHelper.javaファイルはありますか?

答えて

1

まず、getAllData()に次のコードを追加します。

public Cursor getAllData() { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    return this.database.query(TABLE_NAME, new String[] {UID, NAME, MOBILE_NO, GENDER, CITY, ADDRESS, PINCODE}, null, null, null, null, null); 
} 

をあなたのメインの活動では、onCreate()関数内で、次のコードを挿入します。テーブルから

InformationHelper db = new InformationHelper(this); 
Cursor cursor = db.getAllData(); 

if (cursor.moveToFirst()) { 
    editTextName.setText(cursor.getString(1)); 
    editTextMobileNo.setText(cursor.getString(2)); 
    editTextCity.setText(cursor.getString(4)); 
    editTextAddress.setText(cursor.getString(5)); 
    editTextPin.setText(cursor.getString(6)); 
} 

データのすべてをしますあなたが設定したEditTextに印刷してください。特定の行から特定のデータのみを取得する機能がないため、テーブルのすべてのエントリを1つずつ出力することがあります。

+0

ありがとうございました。私は今までそれを知らなかった。 – Razor

+0

実際には、それを探しました。します。私はほとんど2から4へのジャンプに混乱していた。 –

+0

質問をしている人であるVaibhav Joshiが、2から4への混乱を招く 'GENDER'列を飛ばしているからだ。 – Razor

関連する問題