如果我的其余按钮链接到带有onClickListener的网页,如何使按钮打开活动?
我使用以下命令在eclipse中正确打开网页:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1=(Button)findViewById(R.id.button1);
public void onClick(View v) {
// TODO Auto-generated method stub
sendToCoaches();
}
private void sendToCoaches() {
// TODO Auto-generated method stub
String url = "http://www.signal5crossfit.com/coaches/";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(android.net.Uri.parse(url));
startActivity(i);
}
});
b7.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
sendToContacts();
}
public void sendToContacts() {
Intent intent = new Intent(AppActivity.this, App2Activity.class);
startActivity(intent);
}
});}}
我将其更改为您在我的xml文件中包含onClick的第二个示例,这是我得到的错误。
java.lang.RuntimeException:无法实例化活动ComponentInfo {com.Signal5.android/com.Signal5.android.App2Activity}:java.lang.NullPointerException
这是否意味着它无处可指?
答案 0 :(得分:0)
我猜你在xml布局中使用了android:onClick="onClick"
。
示例:
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"
android:onClick="onClick" />
<Button android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
android:onClick="onClick" />
您可以通过获取其ID来检查点击了哪个视图:View.getId()
。
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
sendToCoaches();
break;
case R.id.button2:
doSomethingElse();
break;
}
}
另一种方法是为每个按钮设置一个View.OnClickListener:
Button b1 = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
sendToCoaches();
}
});
b2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
doSomethingElse();
}
});