Android ImageButton onClick,缺少重要的东西?

Android ImageButton onClick, missing something important?

我尝试在其他一些问题后打开 url,但 onClick 事件只是重新启动应用程序,它没有打开浏览器。感谢您的帮助

更新: 这适用于活动而不是片段。

这是我的 .xml 按钮

        <ImageButton
            android:layout_width="55dp"
            android:layout_height="55dp"
            android:id="@+id/imageButton2"
            android:background="@drawable/icon"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:onClick="EnterButton"/>

这是我的 .java 实现的方法。

public void EnterButton(View view) {
Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}

而不是这个

Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

就用这个

startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.google.com")));

完整代码:

public void EnterButton(View view) {
    startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.google.com")));
}

使用此代码它的工作 Man...

public void EnterButton(View view) {
String url = "http://www.google.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
}

它旨在用于 activity 而不是 Fragments ,参考:

但您可以改为在片段上执行此操作。

ImageButton button = (ImageButton) view.findViewById(R.id.imageButton2);
 button.setOnClickListener(new OnClickListener()
   {
             @Override
             public void onClick(View v)
             {
                // do something
             } 
   }); 

经过一些尝试,这对我的片段有效。接口中的其他方法没有修改。

public class HomeFragment extends Fragment implements View.OnClickListener {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_home, container, false);
        ImageButton b = (ImageButton) v.findViewById(R.id.imageButton2);
        b.setOnClickListener(this);
        return v;
    }

     public void onClick(View v) {
        switch (v.getId()) {
            case R.id.imageButton2:
                 String url = "http://www.google.com";
                 Intent intent = new Intent(Intent.ACTION_VIEW);
                 intent.setData(Uri.parse(url));
                 startActivity(intent);
              break;
        }
    }