2016-07-07 82 views
-2

我试着打开一些url后面的其他问题,但onClick事件只是重新启动应用程序,它不打开浏览器。 Thx寻求帮助Android ImageButton 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); 
} 
+0

您是否检查过您的“EnterButton”是否被触发?您还可以检查您的设备是否可以处理此意图 –

回答

0

经过一番尝试,这是为我的片段工作。接口中的其他方法不会被修改。

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; 
     } 
    } 
0

取而代之的是

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"))); 
} 
0

使用此代码的工作人...

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); 
} 
0

它的目的是在活动工作不是碎片,参考:https://stackoverflow.com/a/21192511/3111083

但你能做到这一点的片段来代替。

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