【发布时间】:2017-05-02 22:20:24
【问题描述】:
我有一个这样的方法,在一个公共类中,以便在我想要的任何地方创建视图。
视图正在正确创建,但我还需要在单击该布局时添加一个侦听器。
public class ArticleViews {
public LinearLayout getTinyView(final Context cont){
//Main layout
LinearLayout x = new LinearLayout(cont);
....
我的尝试:
x.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArticleTools.selectedArticle = art;
Fragment art = new ArticleDetailsFragment();
FragmentManager fragmentManager = ¿?¿?¿?getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.include_main, art);
fragmentTransaction.commit();
}
});
但是不可能得到 getSupportFragmentManager(); 因为这个类不是一个 Activity 或一个 Fragment (它不一定是一个)
所以,我的问题是,我该怎么做?
我还在代码的其中一个部分中编写了代码,我在其中调用了 ArticleView 类...这是一个片段,所以我认为这里的代码应该可以工作。
while(it2.hasNext()){
DataSnapshot ds = it2.next();
Articulo a = ds.getValue(Articulo.class);
a.setUserId(usuerId);
ArticleViews av = new ArticleViews(a);
av.getTinyView(getContext()).
setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setClickListenerToView();
}
});
articles.add(av);
}
文章是..
final ArrayList<ArticleViews> articles = new ArrayList<>();
但应用程序没有输入代码
public void setClickListenerToView(){
Log.i("OnClick", "enter");
Fragment art = new ArticleDetailsFragment();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.include_main, art);
fragmentTransaction.commit();
}
感谢您的帮助
【问题讨论】:
标签: android android-fragments views onclicklistener