1

我在 XML 中创建了一些按钮,并且我有将 onClick 打开 URL 的方法。如何将此方法链接到我的按钮,以便在点击/onClick 时调用该方法。

下面是方法代码:

    public void openResource() {
     Uri uri = Uri.parse("http://librarywales.org");
     Intent intent = new Intent(Intent.ACTION_VIEW, uri);
     startActivity(intent);
}

我在 onCreate 方法中创建了我的 XML Button 的一个实例:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button libButton = (Button) findViewById(R.id.button1);
}

如何将该方法添加到 libButton 实例?

我现在已经在 'vins' 的帮助下解决了上述问题,但是当我在 AVD 上运行此应用程序并单击一个按钮时,它会弹出一个 android 消息框。“不幸的是,ApplicationName 已停止工作。”

有谁知道这是为什么?

谢谢,丹

4

5 回答 5

1

在你的按钮声明之后添加这个

 libButton.setOnClickListener(new OnClickListener() 
    {           
        @Override
        public void onClick(View v) 
        {
            //open resource method call here...
        }
    });
于 2012-07-19T09:43:58.177 回答
1

android:onClick="openResource" 

在您的 xml 文件的按钮属性中。

就像是,

<Button
      android:id="@+id/button1"
      .
      .
      android:onClick="openResource"
      />

请注意,此功能仅适用于 Android 2.1(API 级别 7)及更高版本

于 2012-07-19T09:46:58.580 回答
0
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button libButton = (Button) findViewById(R.id.button1);


libButton.setOnClickListener(new OnClickListener() 
{           
    @Override
    public void onClick(View v) 
    {
        if(v.getId()==R.id.button1){
           Uri uri = Uri.parse("http://librarywales.org");
           Intent intent = new Intent(Intent.ACTION_VIEW, uri);
           startActivity(intent);
        }
    }
});

}

于 2012-07-19T10:02:14.890 回答
0
public class YourActivity extends Activity  implements OnClickListener {
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

   Button libButton =(Button) findViewById(R.id.button1);
    libButton.setOnClickListener(this);

    Button OtherButton =(Button) findViewById(R.id.button2);
    OtherButton.setOnClickListener(this);


   }

 @Override
  public void onClick(View v) {

    switch (v.getId()) {
    case R.id.button1: openResource();
                           break;
    case R.id.button2: //do something for second button...

     default : break;
         }
于 2012-07-19T10:23:41.517 回答
0

如果页面中有很多按钮,可以使用 button.setOnClickListener(this);

并覆盖方法中的 OnClick() 方法使用 Switch 语句来匹配已选择的视图。这是一种优化且高效的方式....

于 2012-07-19T10:01:14.993 回答