警告:窗口已经集中忽略了com.android.internal.view的焦点增益。 iinputmethod client $ stub $ proxy 4148db78

时间:2013-01-24 15:18:58

标签: android android-intent android-asynctask

我有搜索但没有找到答案。我想调用startActvity(newintent),但页面没有改变。 这是我的代码:

public class MainActivity extends Activity {
private TextView IdPeserta, Password;
//private ArrayList<NameValuePair> authentication;
@SuppressWarnings("unused")
//private String temp, _nama = "";
//private readURL rL;

public static String username = "";
public static String password = "";
public static String status = "FALSE";

public void setPassword(String password){
    MainActivity.password = password;
}

public void setUsername(String username){
    MainActivity.username = username;
}

public void setStatus(String status){
    MainActivity.status = status;
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    IdPeserta = (TextView) findViewById(R.id.idPeserta);
    Password = (TextView) findViewById(R.id.password);
}    

public void Login(View view){
    setUsername(IdPeserta.getText().toString());
    setPassword(Password.getText().toString());
    if((IdPeserta.getText().length() > 0 && Password.getText().length() > 0)){
        RestTask task = new RestTask();
        task.applicationContext = MainActivity.this;
        task.execute();
    }else{
        Toast.makeText(this,"fill Id Peserta and Password 1", 0).show();
    }
}

public void authenticate(){
    if(status.equals("TRUE")){
        Intent i = new Intent(MainActivity.this, Home.class);
        //PendingIntent pending = PendingIntent.getActivity(this, 0, i, 0);
        startActivity(i);
        finish();
    }else if(status.equals("FALSE")){
        Log.d("gagal", "coba lagi");
    }
}

public static String getService() {

    String responseString = null;

    String baseurlString = "http://10.0.2.2:8080/UjianServices/authentikasi.php";

    RestClient client = new RestClient(baseurlString);
    client.AddParam("id_peserta", MainActivity.username);
    client.AddParam("password", MainActivity.password);

    try {
        client.Execute(RequestMethod.POST);
    } catch (Exception e) {
        Log.d("error", e.getMessage());
        //e.printStackTrace();
    }

    responseString = client.getResponse();

    return responseString;
}

public class RestTask extends  AsyncTask<Object, Object, Object>{
    private ProgressDialog dialog;
    protected Context applicationContext;

    @Override
    protected void onPreExecute() {
        this.dialog = ProgressDialog.show(applicationContext, "Calling", "Time Service...", true);
    }

    @Override
    protected void onPostExecute(Object result) {
        this.dialog.cancel();
        String status = result.toString();
        setStatus(status);
        authenticate();
    }

    @Override
    protected Object doInBackground(Object... arg0) {
        return MainActivity.getService();
    }
}

}

当我没有使用RestTask时,它可以更改页面。我如何改变我的活动?

1 个答案:

答案 0 :(得分:0)

因为applicationContext为空,所以在使用applicationContext显示来自ProgressDialog的{​​{1}}之前,您尚未初始化onPreExecute

在用于显示ProgressDialog或仅使用applicationContext作为:

之前,您需要初始化MainActivity.this
   @Override
    protected void onPreExecute() {
        applicationContext=MainActivity.this; //<<< initialize context here
        this.dialog = ProgressDialog.show(applicationContext, 
                                 "Calling", "Time Service...", true);
    }