簡體   English   中英

結合了DataBase,AlertDialog,ActionBar的App

[英]App With combination of DataBase,AlertDialog,ActionBar

我需要使用ActionBar和AlertDialog將EditText詳細信息添加到“我的TextView”中。

這里有一些圖片可以清晰顯示我的應用,我的細節在EditText中輸入 在此處輸入圖片說明

現在通過單擊ActionBar將彈出帶有NegativeButton和PositiveButton的AlertDialog;現在通過單擊PositiveButton,我希望將詳細信息存儲在DataBase和TextView中 在此處輸入圖片說明

但是當我單擊PositiveButton時,這里什么都沒有發生! 在此處輸入圖片說明

我展示了我在下面嘗試過的代碼

public class MainActivity extends AppCompatActivity {

EditText firstName;
EditText lastName;
EditText mobile;
EditText password;
EditText email;

TextView textView;

List<AccountsModel>list=new ArrayList<AccountsModel>();
DatabaseHelper databaseHelper;

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

    databaseHelper =new DatabaseHelper(this);
    firstName=(EditText)findViewById(R.id.edt_firstname);
    lastName=(EditText)findViewById(R.id.edt_lastname);
    mobile=(EditText)findViewById(R.id.edt_mobile);
    password=(EditText)findViewById(R.id.edt_password);
    email=(EditText)findViewById(R.id.edt_email);

    textView=(TextView)findViewById(R.id.lst_view);


    AccountsModel accountsModel=new AccountsModel();
    accountsModel.firstName="Rahul";
    accountsModel.lastName="uday";
    accountsModel.mobile="9941677745";
    accountsModel.passWord="1234";
    accountsModel.emailId="rahul.uday";
    databaseHelper.addAccountDetials(accountsModel);
    list =databaseHelper.getAllAccountList();
    print(list);
}
private void print(List<AccountsModel>list)
{
    String value ="";
    for (AccountsModel accountsModel : list)
    {
        value = value+"firstName: "+accountsModel.firstName+", lastName: "+accountsModel.lastName+", mobile: "+accountsModel.mobile+", passWord: "+accountsModel.passWord+", emailId: "+accountsModel.emailId+"\n";
    }
    textView.setText(value);
}

@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_main, 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_add) {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("ADD DATA TO LIST");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                    textView.setText(" ");
                    AccountsModel accountsModel = new AccountsModel();
                    accountsModel.firstName = firstName.getText().toString();
                    accountsModel.lastName = lastName.getText().toString();
                    accountsModel.mobile = mobile.getText().toString();
                    accountsModel.passWord = password.getText().toString();
                    accountsModel.emailId = email.getText().toString();

                    databaseHelper.addAccountDetials(accountsModel);
                    list = databaseHelper.getAllAccountList();
            }


        }).setNeutralButton("CANCEL", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
        return true;
    }

    return super.onOptionsItemSelected(item);
}}

DatabaseHelper.java

public class DatabaseHelper extends SQLiteOpenHelper {

public static String dataBaseName = "Login.db";

private static final int dataBaseVersion = 1;

private static final String tableName = "Accounts";
private static String Key_Id = "id";
private static String Key_FirstName = "firstname";
private static String Key_LastName = "lastname";
private static String Key_Password = "password";
private static String Key_Mobile = "mobile";
private static String Key_Email = "email";

public static String tag = "tag";

private static final String createTableAccounts = "CREATE TABLE " + tableName + "( " + Key_Id + " INTEGER PRIMARY KEY AUTOINCREMENT, " + Key_FirstName + " TEXT, " + Key_LastName + " TEXT, " + Key_Password + " TEXT, " + Key_Mobile + " TEXT, " + Key_Email + " TEXT );";

public DatabaseHelper(Context context) {
    super(context, dataBaseName, null, dataBaseVersion);
}

@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL(createTableAccounts);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS" + createTableAccounts);
    onCreate(db);

}

public long addAccountDetials(AccountsModel accounts) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(Key_FirstName, accounts.firstName);
    values.put(Key_LastName, accounts.lastName);
    values.put(Key_Password, accounts.passWord);
    values.put(Key_Mobile, accounts.mobile);
    values.put(Key_Email, accounts.emailId);

    long insert = db.insert(tableName, null, values);
    return insert;
}

public int updateEntry(AccountsModel accounts) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(Key_FirstName, accounts.firstName);
    values.put(Key_LastName, accounts.lastName);
    values.put(Key_Password, accounts.passWord);
    values.put(Key_Mobile, accounts.mobile);
    values.put(Key_Email, accounts.emailId);

    return db.update(tableName, values, Key_Id + "=?", new String[]{String.valueOf(accounts.id)});
}

public void deleteEntry(long id) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(tableName, Key_Id + " = ?", new String[]{String.valueOf(id)});
}

public AccountsModel getAccounts(long id) {
    SQLiteDatabase db = this.getReadableDatabase();

    String selectQuery = "Select  * FROM " + tableName + " WHERE " + Key_Id + " = " + id;
    Log.d(tag, selectQuery);

    Cursor c = db.rawQuery(selectQuery, null);

    if (c != null)
        c.moveToFirst();

    AccountsModel accountsModel = new AccountsModel();
    accountsModel.id = c.getString(c.getColumnIndex(Key_Id));
    accountsModel.firstName = c.getString(c.getColumnIndex(Key_FirstName));
    accountsModel.lastName = c.getString(c.getColumnIndex(Key_LastName));
    accountsModel.mobile = c.getString(c.getColumnIndex(Key_Mobile));
    accountsModel.passWord = c.getString(c.getColumnIndex(Key_Password));
    accountsModel.emailId = c.getString(c.getColumnIndex(Key_Email));

    return accountsModel;
}
public List<AccountsModel> getAllAccountList() {
    List<AccountsModel> accountsModelArrayList = new ArrayList<AccountsModel>();

    String selectQuery = "SELECT  * FROM " + tableName;
    Log.d(tag, selectQuery);

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {

            AccountsModel accountsModel = new AccountsModel();
            accountsModel.id = cursor.getString(cursor.getColumnIndex(Key_Id));
            accountsModel.firstName = cursor.getString(cursor.getColumnIndex(Key_FirstName));
            accountsModel.lastName = cursor.getString(cursor.getColumnIndex(Key_LastName));
            accountsModel.mobile = cursor.getString(cursor.getColumnIndex(Key_Mobile));
            accountsModel.passWord = cursor.getString(cursor.getColumnIndex(Key_Password));
            accountsModel.emailId = cursor.getString(cursor.getColumnIndex(Key_Email));

            accountsModelArrayList.add(accountsModel);
        } while (cursor.moveToNext());
    }

    return accountsModelArrayList;
}}

AccountsModel.java

public class AccountsModel {
    String id;
    String firstName;
    String lastName;
    String mobile;
    String passWord;
    String emailId;

    public AccountsModel(String firstName,String lastName,String mobile,String passWord,String emailId)
    {
        this.id=id;
        this.firstName=firstName;
        this.lastName=lastName;
        this.mobile=mobile;
        this.passWord=passWord;
        this.emailId=emailId;
    }
    public AccountsModel()
    {

    }}

什么也沒發生,因為這種情況總是假的:

 if (dialog == findViewById(R.id.action_add))   

刪除它並再次運行您的應用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM