我需要使用ActionBar和AlertDialog将我的EditText详细信息添加到My TextView。
这里有一些图片来清楚我的应用程序,我的detials在EditText中输入
现在通过单击ActionBar会弹出一个带有NegativeButton和PositiveButton的AlertDialog;现在通过单击PositiveButton,我希望detial存储在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()
{
}}
答案 0 :(得分:0)
什么都没发生,因为这种情况总是假的:
if (dialog == findViewById(R.id.action_add))
将其删除并再次运行您的应用