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;
}
}
我尝试在其他一些问题后打开 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;
}
}