2016-07-07 97 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 
      } 
    });