Android(学生cw)需要指导

时间:2011-10-14 21:13:39

标签: android button

public class Menu extends Activity  {
    /** Called when the activity is first created. */



 public void onCreate(Bundle icicle) {


     //myIntent.setClassName("hello.World", "hello.World.mybuttonclick");
    // myIntent.putExtra("com.android.samples.SpecialValue", "Hello, Joe!"); // key/value pair, where key needs current package prefix.
     //startActivity(myIntent); 

        //Button myButton = (Button) findViewById(R.id.my_button);
        super.onCreate(icicle);


        setContentView(R.layout.main);
    }

 public void updateLayout(){

     Intent myIntent = new Intent(Menu.this, mybuttonclick.class);
     startActivity(myIntent);

    // TextView sayHello = (TextView) findViewById(R.id.Hello);

 }

}

嘿伙计们,我是一个新的android java学生,我们必须开发一个简单的hello world应用程序..我发现使用android:onclick xml中的onClick()活动有些困难..我是什么尝试做的是更改内容视图确实显示一个简单的不同布局,并说你好..我正在使用setContentLayout来做到这一点,每次我点击按钮,因为Android应用程序崩溃了..我做错了什么?

的问候,

的Stefan

3 个答案:

答案 0 :(得分:2)

在xml中设置单击侦听器时,必须在要单击的活动中定义方法。假设您将xml中的onClick设置为“buttonClicked”,您必须创建一个与下面的方法完全相同的方法

    public void buttonClicked(View view)
    {
          //Your code here
    }

需要注意的是,该方法是一个公共void,只有一个View类型的参数。 XML定义的点击侦听器必须像这样才能工作。上例中的视图对象是单击的视图。

答案 1 :(得分:1)

您更新布局功能需要阅读

public void updateLayout(View view)

答案 2 :(得分:0)

在回答您的问题时,有许多问题导致您所描述的并发症。首先要说的是,只要你为某些事情作出让步,你就不必采取任何特别的方式。 Android是一个非常灵活的平台和Java,作为一种OOP语言允许你做许多非OOP语言不能做的事情。

每当你创建一个“可点击”项目时,如Button,如果你想让你的程序响应,你必须有一些“听”它。这被称为监听器。在您的情况下,您正在寻找OnClickListenerOnClickListener 必须成为Activity的一部分。它必须是class implements View.OnClickListener。然后,您已告诉其{1}} setOnClickListener()方法的听众是谁。以下示例显示了没有XML声明的必要条件(但这很重要)。

Button

需要注意的是上面的class Menu extends Activity implements View.OnClickListener { public void onCreate(Bundle icicle) { setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.BUTTON_ID_AS_DEFINED_BY_YOUR_XML); btn.setOnClickListener(this); } public void onClick(View view) { int id = view.getId(); if (id == R.id.BUTTON_ID_AS_DEFINED_BY_YOUR_XML) updateLayout()//Do your Click event here } public void updateLayout() { //updateLayout code... } } 。每个OnClick()必须使用与OnClickListener相同的签名。这意味着即使它具有不同的名称,它也必须具有相同的返回和相同的参数。对于您要执行的操作(使用XML格式),您已将OnClick()设置为android:OnClick。这意味着`updateLayout()必须声明如下:

updateLayout

现在,让更新方法实际工作:当您提供代码时,我们实际上并不知道您获得了什么错误。如果我们有一个包含您收到的错误的Logcat输出的副本,那么解决问题总是容易得多。有一次,我们可以专门针对您的错误,我可以编辑我的答案,以包括您可能还需要的内容。

FuzzicalLogic