2015-02-09 55 views
2

下午好多重意圖,主菜單上的

我是一個新的用戶到Android eclipse.I已經創建了3個按鈕的菜單,這將導致用戶到3個單獨頁面給出自己的選擇,每個給出了自己的意圖然而我在我的代碼中收到很多錯誤,我想知道我是否正確的做法,如果不是,我應該採用哪種方式來處理這個簡單的主菜單

更新:現在似乎沒有運行代碼的錯誤,按鈕仍然沒有響應

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.techblogon.loginexample.MainMenu" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/PIC" /> 

    <Button 
     android:id="@+id/btnWorkout" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_alignLeft="@+id/btnhealth" 
     android:layout_below="@+id/imageView1" 
     android:layout_marginTop="36dp" 
     android:text="Log/View Workout" /> 

    <Button 
     android:id="@+id/btnhealth" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:text="Health Tips" /> 

    <Button 
     android:id="@+id/btnLogout" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_alignLeft="@+id/btnhealth" 
     android:layout_below="@+id/btnhealth" 
     android:layout_marginTop="22dp" 
     android:text="Logout" /> 

</RelativeLayout> 

的Java類:

package com.techblogon.loginexample; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.view.View.OnClickListener; 
import android.content.Context; 
import android.view.Menu; 
import android.view.MenuItem; 





public class MainMenu extends Activity { 

    private Context context; 

    protected void onCreate(Bundle setInstanceState) { 
     super.onCreate(setInstanceState); 
     context=this; 

     setContentView(R.layout.activity_main_menu); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu){ 
     return true; 
    } 

    public boolean btnhealth(View view){ 
     Intent i = new Intent(context, Tips.class); 
     startActivity(i); 
     return true; 

    } 
    public boolean btnWorkout(View view){ 
     Intent ii = new Intent(context, Workout.class); 
     startActivity(ii); 
     return true; 
    } 
    public boolean btnLogout(View view){ 
     Intent iii = new Intent(context, Tips.class); 
     startActivity(iii); 
     return true; 
    } 
} 
+0

@JamesWierzba此方法可用於同一頁面上的多個按鈕,如果有的話,是否有機會顯示m e語法看起來如何,因爲我有點困惑。非常感謝你的幫助 – meryl2 2015-02-09 16:11:21

+0

Dude,你需要'onClickListener',請檢查你的第二個[post](http://stackoverflow.com/questions/28547851/android-multiple-intents-one-form)。 – miselking 2015-02-16 18:47:03

回答

1

您應該使用onClick事件處理程序方法:

<Button 
... 
     android:onClick="handleClick() 
..."/> 

代碼:

public class MainMenu extends Activity { 

... 

public void handleClick(View view){ 
//do stuff 
} 

} 

編輯:

更多具體答案,給出你的代碼:

... 
<Button 
     android:id="@+id/btnWorkout" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_alignLeft="@+id/btnhealth" 
     android:layout_below="@+id/imageView1" 
     android:layout_marginTop="36dp" 
     android:text="Log/View Workout" 
     android:onClick="btnWorkout"/> 

    <Button 
     android:id="@+id/btnhealth" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:text="Health Tips" 
     android:onClick="btnhealth"/> 

    <Button 
     android:id="@+id/btnLogout" 
     android:layout_width="150dp" 
     android:layout_height="60dp" 
     android:layout_alignLeft="@+id/btnhealth" 
     android:layout_below="@+id/btnhealth" 
     android:layout_marginTop="22dp" 
     android:text="Logout" 
     android:onClick="btnLogout"/> 
... 

了Android的屬性值:onclick屬性是,它會尋找,在該活動的相應的Java代碼的方法的名字...(記住該方法的簽名必須爲一個按鈕單擊事件處理程序的正確的簽名,看看對於Android的文檔。)

我建議你選擇一個不同的方法名稱,以便您沒有得到ID和方法的名字迷惑,因爲它們是兩個單獨的引用

+0

這種方法是否可以用於同一頁面上的多個按鈕,如果有的話,您是否有機會向我展示語法的外觀,因爲我有點困惑。非常感謝您的大力支持 – meryl2 2015-02-09 16:11:57

+0

好的我編輯了我的答案請看看 – 2015-02-09 19:29:31