Android(学生cw)需要指导

Android(学生cw)需要指导,android,button,Android,Button,嘿,伙计们,我是一个新的android java学生,我们必须开发一个简单的hello world应用程序。。我发现在xml中使用android:onClick很难让我的onClick()活动正常工作。。我想做的是改变内容视图,显示一个不同的布局并打招呼。。我正在使用setContentLayout来实现这一点,每次我点击所说的按钮,android应用程序就会崩溃。。我做错什么了吗 问候, Stefan在xml中设置单击侦听器时,必须在正在单击的活动中定义方法。假设将xml中的onClick设置

嘿,伙计们,我是一个新的android java学生,我们必须开发一个简单的hello world应用程序。。我发现在xml中使用android:onClick很难让我的onClick()活动正常工作。。我想做的是改变内容视图,显示一个不同的布局并打招呼。。我正在使用setContentLayout来实现这一点,每次我点击所说的按钮,android应用程序就会崩溃。。我做错什么了吗

问候,


Stefan

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

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);

 }

}

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

更新布局功能需要读取

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

在回答您的问题时,有许多问题导致了您所描述的复杂性。首先要说的是,你不必以任何特定的方式做任何事情,只要你在某些事情上做出让步。Android是一个非常灵活的平台和Java,因为OOP语言允许您做许多非OOP语言所做不到的事情

每当你创建一个“可点击”的项目,比如一个
按钮
,如果你想让你的程序响应,你必须有一些东西“听”它。这就是所谓的监听器。在您的例子中,您正在寻找一个
OnClickListener
OnClickListener
必须是
活动的一部分。它必须是一个
来实现View.OnClickListener
。然后,您必须告诉
按钮的
setOnClickListener()
方法其侦听器是谁。下面的示例显示了在没有XML声明的情况下需要做什么(但这很重要)

需要注意的是上面的
OnClick()
。每个
OnClickListener
必须使用与
OnClick()
相同的签名,这意味着它必须具有相同的返回和参数,即使它具有不同的名称。对于您尝试执行的操作(XML),您已经将
android:OnClick
设置为
updateLayout
。这意味着必须按如下方式声明`updateLayout():

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...
     }
}
现在,让update方法真正起作用:当您提供代码时,我们实际上不知道您会遇到什么错误。如果我们有一份包含您收到的错误的Logcat输出副本,那么解决问题总是容易得多。一旦我们知道了,我们可以专门针对您的错误,我可以编辑我的答案,以包括您可能需要的其他内容

模糊逻辑

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...
     }
}
public void updateLayout(View view)