if ブロックをキャッチしないこのアクティビティ クラスがあります。私は初心者なので、指定されたユーザー ID (「001」) をキャッチして、スプラッシュ スレッドの後に特定のインテント (AdminTab) を起動する他の方法は考えられませんでした。
誰かが私が間違っていることを指摘したり、サンプルコードでアドバイスしてくれませんか? ありがとうございました!
public class Splash extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
final UserFunctions userFunction = new UserFunctions();
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timer = new Thread(){
public void run(){
String id = "";
id = userFunction.getID(getApplicationContext());
try{
sleep(1000);
//Should open AdminTab if user id is "001"
if("001".equals(id)){
Intent i = new Intent(getApplicationContext(),
AdminTab.class);
startActivity(i);
}else{
Intent i = new Intent(getApplicationContext(),
UserTab.class);
startActivity(i);
}
} catch (InterruptedException e){
e.printStackTrace();
}finally {
}
}
};
timer.start();
}
これは UserFunctions クラスの getID メソッドです。sqlite データベース ハンドラからの getUserID。
UserFunctions.java
public String getID(Context context) {
String id = "";
DatabaseHandler db = new DatabaseHandler(context);
Cursor cursor = db.getUserID();
if(cursor != null) {
while(cursor.moveToNext()) {
id = cursor.getString(0);
}
} else {
id = "";
}
cursor.close();
db.close();
return id;
}