2016-11-10 2 views
0

Я пытаюсь сделать приложение, как NewsFeed с волейболом, файлом JSON, данные отображаются в виде карт, и я хочу, чтобы когда пользователь нажимает на карты, открывается вся статья, и для этого я использую 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); 

    } 

} 

} 

ответ

0

(Извиняюсь за ответы, а не комментировать - я не имею требуемую репутацию на комментарий)

Пришло неясно, что вы подразумеваете под «заголовком» или тем, что вы хотите отобразить, o Очень сложно помочь. Я собираюсь предположить, что заголовок datos.get(position).getFeedName() и что вы хотите отобразить его в TextView, для которого ссылка хранится в переменной-члене tituln. Пожалуйста, поправьте меня, если я ошибаюсь.

Если это действительно то, что вы хотите сделать, похоже, проблема в том, что ни один из кода в фрагменте диалога фактически не устанавливает текст. Я вижу, что у вас есть вызов tituln.setText в методе displayMetaInfo(), но этот метод никогда не вызывается (по крайней мере, в предоставленном коде).

Если вы просто хотите, чтобы название работало, вам может потребоваться позвонить displayMetaInfo(). Я рекомендую переопределить метод [void onViewCreated(View, Bundle)] (https://developer.android.com/reference/android/app/Fragment.html#onViewCreated(android.view.View, android.os.Bundle)) в Detalles и делать это там.

Смежные вопросы