私はアンドロイドを初めて利用しています。私はユーザーがステータスを更新できるシンプルなアプリケーションを作ろうとしています。私はログインしているステータスと現在のユーザーを表示し、ステータスを更新したいと思います。私はいくつかのコードを試して、それはユーザー名を提供しますが、現在のユーザーは提供しません。現在のユーザー名を取得するにはどうすればよいですか?誰でも助けてくれますか?ログインしている現在のユーザーのユーザー名を取得し、アンドロイドでSQLiteを使用します。
UpdateStatusActivity:
public class UpdateStatusActivity extends AppCompatActivity {
public EditText mUpdateStatusTextBox;
public Button mUpdateStatusButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update_status);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mUpdateStatusTextBox=(EditText)findViewById(R.id.updateStatusTextBox);
mUpdateStatusButton=(Button)findViewById(R.id.updateStatusButton);
mUpdateStatusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//get the status user has entered and convert to string
String strUpdateStatus = mUpdateStatusTextBox.getText().toString();
DatabaseUserDetails dbuserdeatils = new DatabaseUserDetails(getApplicationContext(),null,null,1);
String strCurrentUsername = dbuserdeatils.getUsername();
DatabaseStatusUpdate dbstatusupdate = new DatabaseStatusUpdate(getApplicationContext(),null,null,1);
dbstatusupdate.saveStatus(strCurrentUsername,strUpdateStatus);
Log.d("onclickStatus",strCurrentUsername);
Log.d("onclickStatus",strUpdateStatus);
Toast.makeText(UpdateStatusActivity.this,"Status updated",Toast.LENGTH_LONG).show();
Intent intent = new Intent(UpdateStatusActivity.this,HomePageActivity.class);
startActivity(intent);
}
});
}
}
DatabaseUserDetails:
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE_CLASS = "CREATE TABLE " + TABLE + "(" +
COLUMN_USERNAME + " " + " TEXT," +
COLUMN_PASSWORD + " " + " TEXT," +
COLUMN_EMAIL + " TEXT)";
Log.d("onCreate",CREATE_TABLE_CLASS);
db.execSQL(CREATE_TABLE_CLASS);
}
public void insertEntry(String username,String password,String emailid)
{
ContentValues values = new ContentValues();
values.put(COLUMN_USERNAME, username);
values.put(COLUMN_PASSWORD,password);
values.put(COLUMN_EMAIL, emailid);
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE,null,values);
Log.d("insertEntry",username);
Log.d("insertEntry",password);
Log.d("insertEntry",emailid);
db.close();
}
public String getSinlgeEntry(String userName)
{ SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor=db.query(TABLE, new String[] {COLUMN_USERNAME, COLUMN_PASSWORD}, COLUMN_USERNAME + " = ? " , new String[]{userName}, null, null, null);
/* Cursor cursor=db.query(TABLE, null, COLUMN_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(COLUMN_PASSWORD));
Log.d("getSingleEntry",password);
cursor.close();
return password;
}
public String getUsername(){
SQLiteDatabase db = this.getReadableDatabase();
/*Cursor cursor = db.query(TABLE, new String[] {COLUMN_USERNAME, COLUMN_PASSWORD}, COLUMN_USERNAME , null, null, null, null);
cursor.moveToFirst();*/
String selectQuery = "SELECT "+COLUMN_USERNAME+ " FROM " + TABLE ;
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
String username=cursor.getString(cursor.getColumnIndex(COLUMN_USERNAME));
return username;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE);
onCreate(db);
}
DatabaseStatusUpdate:
public class DatabaseStatusUpdate extends SQLiteOpenHelper{
private static final int DATABASE_VERSION=1;
private static final String DATABASE_NAME = "statusupadteDB.db";
private static final String TABLE = "statusuodate";
public static final String COLUMN_USERNAME = "username";
public static final String COLUMN_STATUS = "status";
public DatabaseStatusUpdate(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE_CLASS = "CREATE TABLE " + TABLE + "(" +
COLUMN_USERNAME + " " + " TEXT," +
COLUMN_STATUS + " " + " TEXT)";
Log.d("onCreate",CREATE_TABLE_CLASS);
db.execSQL(CREATE_TABLE_CLASS);
}
public void saveStatus(String username, String status) {
ContentValues values = new ContentValues();
values.put(COLUMN_USERNAME,username);
values.put(COLUMN_STATUS,status);
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE,null,values);
Log.d("saveStatus",username);
Log.d("saveStatus",status);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
現在のユーザー名を格納している列またはフィールドは表示されません。ユーザー名と現在のユーザー名の違いを教えてください。 –
ユーザ名と現在のユーザ名との違いは?彼らはすでに同じではないでしょうか? –
@EsatIBIS基本的には、現在ログインしているユーザーの名前を表示します。 – PersianBlue