Android创建启动活动的意图
我有一个应用程序,它由一个tabhost组成。我正在使用Android创建启动活动的意图,android,android-intent,android-asynctask,android-tabhost,Android,Android Intent,Android Asynctask,Android Tabhost,我有一个应用程序,它由一个tabhost组成。我正在使用AsyncTask在后台执行一些internet工作。现在在onPostExecute中,我希望它启动一个新的活动。创建新意图时,会显示新活动,但没有选项卡。。这只是活动 现在我已经在网上读到了如何做到这一点,并且我已经设法进入了我认为正确的方向。这是全部代码: package com.appsoweb.kvodeventer; import org.json.JSONObject; import android.app.Activit
AsyncTask
在后台执行一些internet工作。现在在onPostExecute
中,我希望它启动一个新的活动。创建新意图时,会显示新活动,但没有选项卡。。这只是活动
现在我已经在网上读到了如何做到这一点,并且我已经设法进入了我认为正确的方向。这是全部代码:
package com.appsoweb.kvodeventer;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ActivityGroup;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class KVOMeldingen extends ActivityGroup {
public static final JSONObject jsonResult = null;
Button bLogin, bCreateAccount, bResetPassword;
EditText etUsername, etPassword;
static String Username;
static String Password;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.meldingen);
final EditText etUsername = (EditText) findViewById(R.id.etUsername);
final EditText etPassword = (EditText) findViewById(R.id.etPassword);
Button bLogin = (Button) findViewById(R.id.bLogin);
Button bCreateAccount = (Button) findViewById(R.id.bCreateAccount);
Button bResetPassword = (Button) findViewById(R.id.bResetPassword);
bLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (etUsername.length() <= 0) {
etUsername.setError("Veld mag niet leeg zijn");
} else if (etPassword.length() <= 0) {
etPassword.setError("Veld mag niet leeg zijn");
} else {
Username = etUsername.getText().toString();
Password = etPassword.getText().toString();
}
LoginTask NDLT = new LoginTask();
NDLT.execute();
}
});
bCreateAccount.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Doe iets hier.......
}
});
bResetPassword.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Doe iets hier........
}
});
}
public static String getUsername() {
return Username;
}
public static String getPassword() {
return Password;
}
class LoginTask extends AsyncTask<Void, Void, JSONObject> {
ProgressDialog waitingDialog;
@Override
protected void onPreExecute() {
waitingDialog = new ProgressDialog(KVOMeldingen.this);
waitingDialog.setMessage("Laden...");
waitingDialog.show();
super.onPreExecute();
}
@Override
protected JSONObject doInBackground(Void... params) {
JSONObject json = JsonFunctionLogin
.getJsonLoginResult("http://api.crossalertdeventer.nl/login.json");
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
super.onPostExecute(json);
if (waitingDialog.isShowing()) {
waitingDialog.dismiss();
Log.d("iets gebeurt", "gedaan");
}
try {
String LoginResult = json.getString("login");
String UserIdResult = json.getString("user_id");
Log.d("LoginResult", LoginResult);
Log.d("LoginUserId", UserIdResult);
json = null;
Intent intent = new Intent(KVOMeldingen.this, KVOCards.class);
View view = getLocalActivityManager().startActivity("KVOCards", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
} catch (Exception e) {
Log.e("KVOMeldingen", "error" + e.getMessage());
}
}
public void replaceView(View v){
setContentView(v);
}
}
}
package com.appsoweb.kvodenter;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.app.ActivityGroup;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
公共类KVOMeldingen扩展ActivityGroup{
公共静态最终JSONObject jsonResult=null;
按钮bLogin,bCreateCount,bResetPassword;
编辑文本etUsername,etPassword;
静态字符串用户名;
静态字符串密码;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.meldingen);
最终EditText etUsername=(EditText)findViewById(R.id.etUsername);
最终EditText etPassword=(EditText)findViewById(R.id.etPassword);
按钮bLogin=(按钮)findViewById(R.id.bLogin);
按钮bCreateAccount=(按钮)findViewById(R.id.bCreateAccount);
按钮bResetPassword=(按钮)findViewById(R.id.bResetPassword);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(etUsername.length()启动一个新活动,则表示您正在从TabActivity导航到正常活动。显然,您在活动中找不到选项卡。您必须替换视图,而不是创建活动
下面是如何将ActivityGroup与TabActivity一起使用的一个很好的示例
<>但是这个方法已经被否决了。你可能不得不考虑使用片段。
请看这里,Thnx以获取帮助。但是为什么不推荐使用此代码?这是与sdk版本相关的错误吗?