2015-02-09 58 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