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
答案 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
,如果你想让你的程序响应,你必须有一些“听”它。这被称为监听器。在您的情况下,您正在寻找OnClickListener
。 OnClickListener
不必须成为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