2013-12-17 188 views
0

好吧,在我解释之前,我还不是Android编程方面的专家,所以请原谅我,如果我做出愚蠢的问题。片段按钮问题Android

我试图在我的Java类中实现的代码是处理Buttons和Fragments。我想在一个片段类中放一个按钮,以便进入一个网站。即(Facebook的Instagram),但我不知道为什么我在活动=这个错误;我希望有人帮助我并向我解释(如果可能的话)为什么会这样,以及我将来可以做些什么来防止再次发生此错误。

这里是Java代码:

package info.androidhive.slidingmenu; 

import android.app.Activity; 
import android.app.Fragment; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageButton; 


public class NetworksActivity extends Fragment implements OnClickListener{ 

ImageButton imgButtonInstagram; 
ImageButton imgButtonFacebook; 
Activity activity; 

public void onCreate (Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.networks_layout); 
} 
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, 
      Bundle saedInstanceState) { 
     View rootView = inflater.inflate(R.layout.networks_layout, parent, false); 

    activity = this; 
    imgButtonInstagram = (ImageButton)rootView.findViewById(R.id.imgBtnInsta); 
    imgButtonFacebook = (ImageButton)rootView.findViewById(R.id.imgBtnFace); 
    imgButtonFacebook.setOnClickListener(listener); 
    imgButtonInstagram.setOnClickListener(listener); 

    return rootView; 
    } 

private View.OnClickListener listener = new View.OnClickListener() { 
    public void onClick(View v) { 

     switch (v.getId()){ 
      case (R.id.imgBtnInsta): 
       startActivity(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("http://instagram.com/m4lvip"))); 

       break ; // add here 

      case (R.id.imgBtnFace): 
       startActivity(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("https://www.facebook.com/"))); 

       break ;// add here 

     } 


    } 
}; 

@Override 
public void onClick(DialogInterface arg0, int arg1) { 
    // TODO Auto-generated method stub 

} 
} 

回答

2

activity = this这并不是指活动情境堂妹NetworksActivity extends Fragment

使用

activity = getActivity()

getActivity()

返回该片段当前与相关联的活动。

而且你的进口不正确

删除此

import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 

使用

import android.view.View 
import android.view.View.OnClickListener; 

还可以使用@覆盖批注

@Override 
public void onClick(View v) { 

而且删除此

@Override 
public void onClick(DialogInterface arg0, int arg1) { 
    // TODO Auto-generated method stub 

} 

同时删除该

implements OnClickListener 
+0

这个工作!谢谢! – Kodi

0

试试这个

activity=getActivity(); 
0

下面是与Raug注释工作代码,虽然我没有使用既不

删除此 进口android.content.DialogInterface; import android.content.DialogInterface.OnClickListener;使用 import android.view.View import android.view.View.OnClickListener;

import android.app.Fragment; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageButton; 


public class MiscFragment extends Fragment { 
ImageButton imgButtonTwitter; 
ImageButton imgButtonFacebook; 

public void onCreate (Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_misc, container, 
      false); 
    imgButtonTwitter = (ImageButton)rootView.findViewById(R.id.iButton1); 
    imgButtonFacebook = (ImageButton)rootView.findViewById(R.id.iButton2); 
    imgButtonFacebook.setOnClickListener(listener); 
    imgButtonTwitter.setOnClickListener(listener); 
    return rootView; 
} 
private View.OnClickListener listener = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     switch (v.getId()){ 
      case (R.id.iButton1): 
       startActivity(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("http://instagram.com/"))); 

       break ; 

      case (R.id.iButton2): 
       startActivity(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("https://www.facebook.com/"))); 

       break ; 

     } 


    } 
}; 

}