2012-03-11 32 views
0

我發現此代碼非常有用,可以從一個活動獲取到另一個活動,但問題是,我沒有看到提及目標的位置。如果有人指出如何改變目的地,我會非常感激。定義按鈕的目標活動

下面是代碼:

Button getTaxi = (Button) findViewById(R.id.GetTaxi); 
    getTaxi.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(final View view) { 
      final Intent intent = new Intent(); 
      setResult(RESULT_OK, intent); 
      finish(); 
     } 
    }); 

在XML中的各個部分:

<Button 
    android:id="@+id/GetTaxi" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:text="GetTaxi" > 
</Button> 

非常感謝你提前!

回答

1

實際上,在Button的點擊上執行的代碼指出,您的Activity(這是此處的子活動)已完成其作業,現在以結果代碼RESULT_OK結束。這意味着有另一個Activity已經開始這個實際的Activity某種結果。所以,當你點擊Button你的Activity就會完成。要啓動Button的其他Activity的點擊,您應該創建一個Intent,明確指定要開始的Activity,或者只是您要對某些數據執行的操作,讓Android爲您解決最終的Activity。那麼你應該打電話startActivity(),通過你創建的Intent。希望這可以幫助。

+0

謝謝你打開我的眼睛。是的,這實際上是一個子活動。 我正在尋找的代碼部分當然是主要的活動。 再次感謝! – Teonee 2012-03-11 22:20:56

+0

@Teonee,不客氣! – Egor 2012-03-12 07:40:59

0

您可以使用這樣的事情:

Button getTaxi = (Button) findViewById(R.id.GetTaxi); 
getTaxi.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(final View view) { 
     Intent intent = new Intent(); 
     intent.setClass(this, GetTaxiActivity.class); 
     startActivity(intent); 
     //call finish() if the current activity is something like a loading page 
    } 
}); 

上面你提到的代碼塊是一個子活動,其使用 StartActivityForResult()調用;

+0

非常感謝。 :) – Teonee 2012-03-12 03:19:44