2013-08-29 3 views
0

Я хочу изменить текст TextView в onActivityResult метод. Кажется, он настроен правильно, но я не вижу его в view.Изменение текста TextView не работает

То, что TextView находится на третьем Fragment из ViewPager.

Так вот мой код:

public class TabsFacturasActivity extends SherlockFragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_pager); 
     //... 
     mAdapter = new MyAdapter(getSupportFragmentManager()); 

     mPager = (ViewPager)findViewById(R.id.pager); 
     mPager.setAdapter(mAdapter); 
     //... 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (requestCode) { 
      case FILE_SELECT_CODE: 
      if (resultCode == RESULT_OK) { 
       adjunto = true; 
       // Get the Uri of the selected file 
       Uri uri = data.getData(); 
       // Get the path 
       String path = ""; 
       try { 
        path = MyUtility.getPath(this, uri); 
       } catch (URISyntaxException e) { 
        myApplication.throwException(this); 
        e.printStackTrace(); 
       } 
       String imgName = path.split("/")[path.split("/").length-1]; 
       LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View view = inflater.inflate(R.layout.activity_lectura, null, false); 
       textViewImg = (TextView) view.findViewById(R.id.textViewUrlImgLectura); 
       System.out.println("text view before: "+textViewImg.getText()); //It returns correct value "..." 
       textViewImg.setText(imgName); 
       textViewImg.invalidate(); //It does nothing 
       System.out.println("text view after: "+textViewImg.getText()); //It returns correct value with image path 
       filePath = path; 
      } 
      break; 
     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 

    private static class MyAdapter extends FragmentPagerAdapter { 

     private String[] titles = { "VER FACTURAS", "VER CONSUMO", "INTRODUCIR LECTURA" }; 

     public MyAdapter(FragmentManager fragmentManager) { 
      super(fragmentManager); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return titles[position]; 
     } 

     @Override 
     public Fragment getItem(int position) { 
      switch (position) { 
      case 0: // Fragment # 0 
       return new FacturasActivity(); 
      case 1: // Fragment # 1 
       return new ConsumoActivity(); 
      case 2:// Fragment # 2 
       return new LecturaActivity(); //TextView is here 
      } 
      return null; 
     } 

     @Override 
     public int getCount() { 
      return titles.length; 
     } 

    } 
} 

Как вы можете видеть, я попытался с помощью invalidate, но он ничего не делает. Как я могу решить эту проблему?

+0

где вы добавляете 'View view' в представлении фрагмента? –

+0

Я обновил свой вопрос. 'TextView' в третьем« Фрагменте »(LecturaActivity). – Lyd

+0

вы накачаете новый 'activity_lectura', но вы не добавили его в Fragment's View –

ответ

0

Я решил с этим ответом: https://stackoverflow.com/a/18487696/1088643

я получаю экземпляр моего и методов доступа к Fragment здесь:

LecturaActivity lecturaFragment = (LecturaActivity) 
         getSupportFragmentManager().findFragmentByTag(
          "android:switcher:"+R.id.pager+":"+2); 
lecturaFragment.changeImgText(imgName); 
0

Попробуйте textViewImg.requestLayout();

+0

Я установил его после 'textViewImg.setText (imgName)', и он ничего не делает. – Lyd

+0

Вы уверены, что ваш код выполняется? вы пытались его отладить? –

+0

Да, он печатает на консоли (см. Код). – Lyd

0

Там может быть что-то неправильно с фрагментами. Возможно, есть еще одно текстовое представление с тем же идентификатором в другом фрагменте, который вы, возможно, загрузили, и текст будет установлен. Попробуйте распечатать значения идентификаторов textview.

+0

он раздувает новый вид 'activity_lectura' ... и никогда не добавляет его в представление Fragment –

+0

Я предполагаю, что используемый здесь пейджер-адаптер загружает несколько страниц/фрагментов в основное действие. –

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