2017-07-20 3 views
0

Also im Grunde habe ich einen Viewpager, dessen Fragmente dynamisch hinzugefügt und entfernt werden. Was ich versuche zu tun, ist aufClick-Funktion in Fragment gesetzt und etwas zu diesem Fragment zu tun. Folgendes ist mein Code.Warum funktioniert onClickListener nicht in meinem ViewPager Fragment

MainFragment.java

public class MainFragment extends Fragment implements View.OnClickListener { 
private static final String ARG_LAYOUT="layout"; 
private QuoteData quoteData; 
private String textTospeak; 
private Speaker speaker; 
//Returns an Instance of fragment 
static Fragment newInstance(int layoutId, QuoteData quoteData) { 
    Fragment result=new MainFragment(); 
    //quoteData = quoteDat; 
    Bundle args=new Bundle(); 
    args.putInt(ARG_LAYOUT, layoutId); 
    args.putString("quote", quoteData.getQuote()); 
    args.putString("author", quoteData.getAuthorName()); 
    args.putString("imgurl", quoteData.getAuthorName()); 
    result.setArguments(args); 
    return(result); 
} 

public MainFragment(){} 



@Override 
public View onCreateView(LayoutInflater inflater, 
         ViewGroup container, 
         Bundle savedInstanceState) { 

    View fragmentView = inflater.inflate(getArguments().getInt(ARG_LAYOUT),container, false); 
    TextView textview = (TextView)fragmentView.findViewById(R.id.quotetext); 
    String text = (String)getArguments().get("quote") +"\n\t\t\t"+getArguments().get("author"); 
    textview.setText(text); 

    ImageView imageView = (ImageView) fragmentView.findViewById(R.id.speak); 
    imageButton.setOnClickListener(this); 
    return(fragmentView); 

} 

@Override 
public void onClick(View v) { 
    //speak(); 
    Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT); 
} 

}

Dann habe ich das OnClick Attribut in xml fragment und erstellt eine Funktion in meinem MainActivity, die entweder nicht funktioniert hat.

Was fehlt mir?

+2

versuchen Aufruf .show() auf dem Toast, es wäre lustig, wenn, dass es - auch dort zu –

+1

eine Log-Anweisung setzen @ SaikCaskey hahaha ja das wars! Es hat mich wirklich dumm gemacht, lol –

Antwort

0

ersetzen:

@Override 
public void onClick(View v) { 
    //speak(); 
    Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT); 
} 

mit:

@Override 
     public void onClick(View v) { 
      //speak(); 
      if(v.getId() == imageButton.getId()){ 
      Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT).show(); 
      } 
     } 
Verwandte Themen