为什么setText不起作用?

问题描述:

我试图让一个应用程序像一个NewsFeed凌空一个JSON文件,数据显示在cardviews中,我希望当用户点击cardviews打开整篇文章,为此我使用DialogFragment (我没有找到其他的方式),但问题是,当dialogfragment打开时只显示在布局中设置的默认文本,现在我只想显示dialogfragment中每篇文章的标题,我知道有很多代码中的错误,是因为来自另一个应用程序,希望有人可以给和建议,谢谢。为什么setText不起作用?

MainActivity

recyclerView.addOnItemTouchListener(new MyRecyclerAdapter.RecyclerTouchListener(getApplicationContext(), recyclerView, new MyRecyclerAdapter.ClickListener() { 
       @Override 
       public void onClick(View view, int position) { 
        Bundle bundle = new Bundle(); 
        bundle.putSerializable("images", datos); 
        bundle.putInt("position", position); 

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
        Detalles newFragment = Detalles.newInstance(); 
        newFragment.setArguments(bundle); 
        newFragment.show(ft, "slideshow"); 
       } 

Detalles.java

public class Detalles extends DialogFragment{ 
private String TAG = Detalles.class.getSimpleName(); 
private ArrayList<NewsFeed> datos; 
private TextView tituloon, notoon; 

private View viewPager; 


private MyViewPagerAdapter myViewPagerAdapter; 
    private int selectedPosition = 0; 
static Detalles newInstance() { 
    Detalles f = new Detalles(); 
    return f; 
} 

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

    View v = inflater.inflate(R.layout.detalles_completo, container, false); 
    tituln = (TextView) v.findViewById(R.id.titulon); 
    notlnn = (TextView) v.findViewById(R.id.noton); 
    datos = (ArrayList<NewsFeed>) getArguments().getSerializable("images"); 
    myViewPagerAdapter = new MyViewPagerAdapter(); 

    selectedPosition = getArguments().getInt("position"); 



    return v; 

} 




private void displayMetaInfo(int position) { 

    NewsFeed image = datos.get(position); 
    tituln.setText(image.getFeedName()); 
    notlnn.setText(image.getContent()); 

} 




@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 



} 



public class MyViewPagerAdapter extends PagerAdapter { 

    private LayoutInflater layoutInflater; 

    public MyViewPagerAdapter() { 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 

     layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = layoutInflater.inflate(R.layout.detalles_completo, container, false); 


     NewsFeed image = datos.get(position); 

     tituln.setText(image.getFeedName()); 



     container.addView(view); 


     return view; 
    } 



    @Override 
    public int getCount() { 
     return datos.size(); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object obj) { 
     return view == ((View) obj); 
    } 


    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((View) object); 

    } 

} 

} 

(道歉回答,而不是评论 - 我没有必要的口碑评论)

这是不清楚你的意思是“标题”或你想要显示它,s o这很难帮助。我将假定标题为datos.get(position).getFeedName(),并且您想要将其显示在TextView中,其中引用存储在成员变量tituln中。如果我错了,请纠正我。

如果这确实是你想要做的事,看起来问题是对话框片段中的代码实际上没有设置文本。我看到你在displayMetaInfo()方法中调用了tituln.setText,但这种方法从来没有被调用过(至少在提供的代码中)。

如果您只想让标题正常工作,您可能会考虑在某处拨打displayMetaInfo()。我建议覆盖Detalles中的[void onViewCreated(View, Bundle)方法](https://developer.android.com/reference/android/app/Fragment.html#onViewCreated(android.view.View,android.os.Bundle))并在此处执行此操作。