show data sqlite in textview

2019-08-28 10:03发布

I would like show the data sqlite in the textview but i don't no how i do ?

LoginDataBaseAdapter.java

package com.example.audevardlast;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class LoginDataBaseAdapter 
{
        static final String DATABASE_NAME = "login.db";
        static final int DATABASE_VERSION = 1;
        public static final int NAME_COLUMN = 1;
        // TODO: Create public field for each column in your table.
        // SQL Statement to create a new database.

        static final String DATABASE_CREATE = "CREATE TABLE " + "LOGIN" + " ("
                + "ID" + " INTEGER PRIMARY KEY AUTOINCREMENT, " + "USERNAME" + " TEXT, "
                +"PRENOM" + " TEXT, "
                +"EMAIL" + " TEXT, "
                +"SCORE" + " TEXT, "
                + "CODE" + " TEXT );";

        // Variable to hold the database instance
        public  SQLiteDatabase db;
        // Context of the application using the database.
        private final Context context;
        // Database open/upgrade helper
        private DataBaseHelper dbHelper;
        public  LoginDataBaseAdapter(Context _context) 
        {
            context = _context;
            dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        public  LoginDataBaseAdapter open() throws SQLException 
        {
            db = dbHelper.getWritableDatabase();
            return this;
        }
        public void close() 
        {
            db.close();
        }

        public  SQLiteDatabase getDatabaseInstance()
        {
            return db;
        }



        public void insertEntry(String userName,String prenom,String mail,String cp,String point)
        {
           ContentValues newValues = new ContentValues();
            // Assign values for each row.
            newValues.put("USERNAME", userName);
            newValues.put("PRENOM",prenom);
            newValues.put("EMAIL",mail);
            newValues.put("CODE",cp);
            newValues.put("SCORE",point);




            // Insert the row into your table
            db.insert("LOGIN", null, newValues);
            ///Toast.makeText(context, "Reminder Is Successfully Saved", Toast.LENGTH_LONG).show();
        }
        public int deleteEntry(String UserName)
        {
            //String id=String.valueOf(ID);
            String where="USERNAME=?";
            int numberOFEntriesDeleted= db.delete("LOGIN", where, new String[]{UserName}) ;
           // Toast.makeText(context, "Number fo Entry Deleted Successfully : "+numberOFEntriesDeleted, Toast.LENGTH_LONG).show();
            return numberOFEntriesDeleted;
        }   
        public String getSinlgeEntry(String userName)
        {
            Cursor cursor=db.query("LOGIN", null, " USERNAME=?", new String[]{userName}, null, null, null);
            if(cursor.getCount()<1) // UserName Not Exist
            {
                cursor.close();
                return "NOT EXIST";
            }
            cursor.moveToFirst();
            String password= cursor.getString(cursor.getColumnIndex("USERNAME"));
            cursor.close();
            return password;                
        }


        public void  updateEntry(String userName,String prenom,String mail, String cp,String point)
        {
            // Define the updated row content.
            ContentValues updatedValues = new ContentValues();
            // Assign values for each row.
            updatedValues.put("USERNAME", userName);
            updatedValues.put("PRENOM",prenom);
            updatedValues.put("EMAIL",mail);
            updatedValues.put("CODE",cp);
            updatedValues.put("SCORE",point);



            String where="EMAIL = ?";
            db.update("LOGIN",updatedValues, where, new String[]{userName});               
        }



}

SignUPActivity.java

package com.example.audevardlast;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class SignUPActivity extends Activity
{
    EditText editTextUserName,editTextPrenom,editTextEmail,editTextCodePostal,editTextPoint;
    Button btnCreateAccount;
    final String SCORE="score";

    LoginDataBaseAdapter loginDataBaseAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.signup);
         Intent intent = getIntent();
          EditText loginDisplay = (EditText) findViewById(R.id.editText2);

           if (intent != null)
           {
               loginDisplay.setText(intent.getStringExtra(SCORE));
           }
        // get Instance  of Database Adapter
        loginDataBaseAdapter=new LoginDataBaseAdapter(this);
        loginDataBaseAdapter=loginDataBaseAdapter.open();

        // Get Refferences of Views
        editTextUserName=(EditText)findViewById(R.id.editTextUserName);
        editTextPrenom=(EditText)findViewById(R.id.editTextPassword);
        editTextEmail=(EditText)findViewById(R.id.editTextMail);
        editTextCodePostal=(EditText)findViewById(R.id.editText1);
        editTextPoint=(EditText)findViewById(R.id.editText2);

        editTextPoint.setVisibility(View.INVISIBLE);

        btnCreateAccount=(Button)findViewById(R.id.buttonCreateAccount);
        btnCreateAccount.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            String userName=editTextUserName.getText().toString();
            String prenom=editTextPrenom.getText().toString();
            String mail=editTextEmail.getText().toString();

            String cp=editTextCodePostal.getText().toString();
            String point=editTextPoint.getText().toString();




            // check if any of the fields are vaccant
            if(userName.equals("")||prenom.equals(""))
            {
                    Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show();
                    return;
            }

            else
            {
                // Save the Data in Database
                loginDataBaseAdapter.insertEntry(userName, prenom, mail, cp, point);
                Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show();
            }
        }
    });
}
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();

        loginDataBaseAdapter.close();
    }
}

I would like total data of my sqlite appear in a textview in a homeActivity...

HomeActivity.java

package com.example.audevardlast;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class HomeActivity extends Activity 
{
    Button btnSignIn,btnSignUp;
    LoginDataBaseAdapter loginDataBaseAdapter;
    final String SCORE="score";

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

         Intent intent = getIntent();
           TextView loginDisplay = (TextView) findViewById(R.id.textView1);

           if (intent != null)
           {
               loginDisplay.setText(intent.getStringExtra(SCORE));
           }
         // create a instance of SQLite Database
         loginDataBaseAdapter  =new LoginDataBaseAdapter(this);
         loginDataBaseAdapter=loginDataBaseAdapter.open();

         // Get The Refference Of Buttons
         btnSignIn=(Button)findViewById(R.id.buttonSignIN);
         btnSignUp=(Button)findViewById(R.id.buttonSignUP);






        // Set OnClick Listener on SignUp button 
        btnSignUp.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub

            /// Create Intent for SignUpActivity  and Start The Activity


            Intent intentSignUP=new Intent(getApplicationContext(),SignUPActivity.class);
            TextView score1=(TextView) findViewById(R.id.textView1);

            intentSignUP.putExtra(SCORE, score1.getText().toString());
            startActivity(intentSignUP);
            }
        });
    }
    // Methos to handleClick Event of Sign In Button
    public void signIn(View V)
       {
            final Dialog dialog = new Dialog(HomeActivity.this);
            dialog.setContentView(R.layout.login);
            dialog.setTitle("Login");

            // get the Refferences of views


            final  EditText editTextUserName=(EditText)dialog.findViewById(R.id.editTextUserNameToLogin);

            Button btnSignIn=(Button)dialog.findViewById(R.id.buttonSignIn);

            // Set On ClickListener
            btnSignIn.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // get The User name and Password
                    String userName=editTextUserName.getText().toString();


                    // fetch the Password form database for respective user name
                    String storedPassword=loginDataBaseAdapter.getSinlgeEntry(userName);

                    // check if the Stored password matches with  Password entered by user
                    if(userName.equals(storedPassword))
                    {
                         Intent intent = new Intent(HomeActivity.this, ProfilActivity.class);
                            TextView score1=(TextView) findViewById(R.id.textView1);

                             intent.putExtra(SCORE, score1.getText().toString());

                            startActivity(intent);
                    }
                    else
                    {
                        Toast.makeText(HomeActivity.this, "User Name or Password does not match", Toast.LENGTH_LONG).show();
                    }
                }
            });

            dialog.show();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Close The Database
        loginDataBaseAdapter.close();
    }
}

标签: android sdk
2条回答
地球回转人心会变
2楼-- · 2019-08-28 10:48

you can declare adapter like that

import java.util.ArrayList;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

@SuppressLint("InflateParams")
public class UserList extends BaseAdapter
{
    private Context mContext;
    private ArrayList<String> id;
    private ArrayList<String> emailID;
    private ArrayList<String> firstName;
    private ArrayList<String> lastName;

    public UserList(Context c, ArrayList<String> id, ArrayList<String> fname, ArrayList<String> lname, ArrayList<String> emailID) 
    {
        this.mContext = c;

        this.id = id;
        this.emailID = emailID;
        this.firstName = fname;
        this.lastName = lname;
    }


    public int getCount() {
        return id.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

@Override
public View getView(int pos, View child, ViewGroup arg2) {
    Holder mHolder;
    LayoutInflater layoutInflater;
    if (child == null) {
        layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        child = layoutInflater.inflate(R.layout.listcell, null);
        mHolder = new Holder();
        //mHolder.txt_id = (TextView) child.findViewById(R.id.txt_id);
        mHolder.txt_userName = (TextView) child.findViewById(R.id.txt_userName);
        mHolder.txt_fName = (TextView) child.findViewById(R.id.txt_fName);
        mHolder.txt_lName = (TextView) child.findViewById(R.id.txt_lName);
        child.setTag(mHolder);
    } else {
        mHolder = (Holder) child.getTag();
    }
    //mHolder.txt_id.setText(id.get(pos));
    mHolder.txt_userName.setText(emailID.get(pos));
    mHolder.txt_fName.setText(firstName.get(pos));
    mHolder.txt_lName.setText(lastName.get(pos));
    return child;
}

public class Holder 
{
    //TextView txt_id;
    TextView txt_userName;
    TextView txt_fName;
    TextView txt_lName;
}

}

and after that write your activity code something like that

package com.example.registrationapp;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;

public class HomePage extends Activity
{
private DatabaseActivity mHelper;
private SQLiteDatabase dataBase;
private AlertDialog.Builder build;

private ArrayList<String> userId = new ArrayList<String>();
private ArrayList<String> FirstName = new ArrayList<String>();
private ArrayList<String> LastName = new ArrayList<String>();
private ArrayList<String> EmailID = new ArrayList<String>();

private ListView userList;

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display_activity);

    userList = (ListView) findViewById(R.id.List);

    mHelper = new DatabaseActivity(this);

@Override
protected void onResume()
{
    displayData();
    super.onResume();
}

private void displayData()
{
    dataBase = mHelper.getWritableDatabase();
    Cursor mCursor = dataBase.rawQuery("SELECT * FROM " + DatabaseActivity.TABLE_NAME , null );

    clear();

    if (mCursor.moveToFirst()) 
    {
        do 
        {       
            userId.add(mCursor.getString(mCursor.getColumnIndex(DatabaseActivity.KEY_ID)));
            FirstName.add(mCursor.getString(mCursor.getColumnIndex(DatabaseActivity.KEY_FNAME)));
            LastName.add(mCursor.getString(mCursor.getColumnIndex(DatabaseActivity.KEY_LNAME)));
            EmailID.add(mCursor.getString(mCursor.getColumnIndex(DatabaseActivity.KEY_EMAIL_ID)));

        } while (mCursor.moveToNext());
    }
    UserList disadpt = new UserList(HomePage.this ,userId, LastName, EmailID, FirstName);
    userList.setAdapter(disadpt);
    mCursor.close();
}

public void clear()
{
    userId.clear();
    FirstName.clear();
    LastName.clear();
    EmailID.clear();
}
}

and make your xml files something like that

<?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="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal" >

<TextView
    android:id="@+id/txt_userName"
    android:layout_width="0dp"
    android:layout_height="19dp"
    android:layout_weight="2"
    android:gravity="center" />

<TextView
    android:id="@+id/txt_fName"
    android:layout_width="0dp"
    android:layout_height="19dp"
    android:layout_weight="2" />

<TextView
    android:id="@+id/txt_lName"
    android:layout_width="0dp"
    android:layout_height="19dp"
    android:layout_weight="3.51"
    android:gravity="left" />

 </LinearLayout>

and declare listview like this

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal" >

<View
    android:id="@+id/a"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:paddingBottom="10dp" />

<ListView
    android:id="@+id/List"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</RelativeLayout>

hope this helps ....

查看更多
Bombasti
3楼-- · 2019-08-28 10:52

You can get all entries by returning a cursor inside Your LoginDatavaseAdapter class:

    public Cursor getAllEntries(){

    Cursor cur = db.query(YourTableName, 
         null, null, null, null, null, null);
       return  cur;

          }

Then it´s easy in Your Activity:

       Cursor cursor =  loginDataBaseAdapter.getAllEntries();
       cursor.moveToFirst();
       int rows = cursor.getCount();

       for(int i=0;i<rows;i++){

        String entryOne = cursor.getString(0); //and so on. Here You get first entry of Column number 1 in first row

          //here it´s up to You what You want to do with the data
         cursor.moveToNext(); //let the cursor move to the next to get the next row entries

        }

Here what You have to use to get the information:

"ID" = cursor.getString(0)//or cursor.getInt(0) because it is an integer "USERNAME" = cursor.getString(1) "PRENOM" = cursor.getString(2) "EMAIL" = cursor.getString(3) "SCORE" = cursor.getString(4) "CODE" = cursor.getString(5)

This is how You get all informations from one row. In the for loop above, when You set

    cursor.moveToNext();

Then the cursor skip to the next row and gets the data from the row. If You just want to have only entries from one User, then it could be something like this:

       for(int i=0;i<rows;i++){

        String userName = cursor.getString(1); 
        if(userName.equals(YourSearchedName)){

              //do what You want to do if the user matches and stop the loop
           break; //<--stop loop
         }else{

         //if it doesn´t match, go to the next row
         cursor.moveToNext(); 

         }

        }
查看更多
登录 后发表回答