2017-01-02 82 views
0

我有一個執行POST請求的函數,當它完成時,我希望視圖被更改。要做到這一點,我有以下代碼:Android更改視圖失敗

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main3); 

    final Button button_modificar = (Button)findViewById(R.id.button_modificar); 
    button_modificar.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      try { 
       new SendPostRequest().execute(); 

       Intent intent2 = new Intent(Main3Activity.this, Main_esp_Activity.class); 
       startActivity(intent2); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 

我不知道爲什麼會崩潰,當我刪除線: Intent intent2 = new Intent(Main3Activity.this, Main_esp_Activity.class); startActivity(intent2);,它完美的作品。如果你能幫助我,我將不勝感激。

+1

你可以發佈堆棧跟蹤嗎 –

+0

這段代碼不會像你期望的那樣工作,你需要觸發一個異步操作並在回調中執行你的視圖更改,你在這裏編寫代碼會馬上嘗試啓動一個新的活動調用SendPostRequest.execute()。 – Orbit

回答

0

非常感謝大家的回答和時間。我剛剛提出了一個問題的解決方案:活動「Main_esp_Activity」具有以下幾行代碼: Intent intentGetUser = getIntent(); Bundle extras = intentGetUser.getExtras(); user = extras.getString("user");

哪裏用於獲取上一個活動的「用戶」字符串值。因此,我所要做的只是傳遞一個值返回字符串「用戶」到「Main_esp_Activity,所以在下面的最終代碼的變化:

Intent intentt = new Intent(Main3Activity.this, Main_esp_Activity.class); 
intentt.putExtra("user", user); 
startActivity(intentt); 
1

您想打開您的意圖的活動在Manifest文件中聲明?如果它不是那麼宣佈它像主要活動

可能是這個幫助你。

0

調用這段代碼onPostExecute()

Intent intent2 = new Intent(Main3Activity.this, Main_esp_Activity.class); 
startActivity(intent2);