Holen Sie sich id von TextView in Fragment von FragmentActivity in ViewPager

Ich arbeite mit ViewPager mit 3 Fragments und ich möchte Text von TextView auf der dritten Seite ändern.

Auf dieser Seite habe ich einen Button dass, wenn seine gedrückt, gehen Sie zu SD-Bilder, um eine zu wählen. Wenn es fertig ist, kehrt man zur Seite zurück und möchte TextView mit dem Pfad dieses Bildes aktualisieren. Das Problem ist, dass, wenn ich versuche, auf diese TextView von FragmentActivity zuzugreifen, ist es null.

  • Android Audio-Effekt auf WAV-Datei und speichern Sie es
  • Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Lcom / actionbarsherlock / R $ attr
  • Wie benutzt man std :: stoul und std :: stoull in Android?
  • Genymotion - Das virtuelle Gerät hat keine IP-Adresse
  • Signing APK-Datei in Cordova v-5.0 CLI funktioniert nicht
  • Kann Android Emulator Interner Speicher nicht erhöhen
  • Hier ist mein Code

    SherlockFragmentAktivität:

     public class TabsFacturasActivity extends SherlockFragmentActivity { protected MyApplication myApplication; private static final int FILE_SELECT_CODE = 0; private MyAdapter mAdapter; private ViewPager mPager; private PageIndicator mIndicator; private TextView textViewImg; private int lecturas = 0; private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); private boolean adjunto = false; private String filePath; private boolean esLecturaAT = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_pager); // Get the application instance myApplication = (MyApplication)getApplication(); //Need to get that view textViewImg = (TextView) findViewById(R.id.textViewUrlImgLectura); //Creamos la lista LinkedList<String> direcciones = new LinkedList<String>(); ArrayList<TuplaCupsWS> dirs = myApplication.getUsuarioActual().getCups(); for(int dir = 0; dir < myApplication.getUsuarioActual().getCups().size(); dir++) { direcciones.add(new String(dirs.get(dir).getDireccion())); } int tab = getIntent().getIntExtra("tab", 0); mAdapter = new MyAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setCurrentItem(tab); mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setIcon(R.drawable.logo_factorenergia_peque); /** Create an array adapter to populate dropdownlist */ ArrayAdapter<String> adapter = new ArrayAdapter<String>( getBaseContext(), android.R.layout.simple_spinner_dropdown_item, direcciones); /** Enabling dropdown list navigation for the action bar */ getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); /** Defining Navigation listener */ OnNavigationListener navigationListener = new OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { return false; } }; /** Setting dropdown items and item navigation listener for the actionbar */ getSupportActionBar().setListNavigationCallbacks(adapter, (com.actionbarsherlock.app.ActionBar.OnNavigationListener) navigationListener); } @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]; textViewImg.setText(imgName); //Here textViewImg is null filePath = path; } break; } super.onActivityResult(requestCode, resultCode, data); } //Method executed when Button is pressed public void examinar(View view) { mostrarFileChooser(); } private void mostrarFileChooser() { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); try { startActivityForResult(intent, FILE_SELECT_CODE); } catch (android.content.ActivityNotFoundException ex) { } } 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(); } //return new MyFragment(); return null; } @Override public int getCount() { return titles.length; } } } 

    Fragment_pager.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" tools:context=".TabsFacturasActivity" > <com.viewpagerindicator.TitlePageIndicator android:id="@+id/indicator" android:padding="10dip" android:layout_height="wrap_content" android:layout_width="fill_parent" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#1184A4E8" /> </LinearLayout> 

  • Ausrichten von Variablen Namen im androiden Studio
  • Senden Sie Daten von Service zu Aktivität Android
  • Android Emulator stürzt auf Ubuntu 11.10 ab
  • Unterstützung beider Orientierungsansichten in Honeycomb
  • Android App startet und endet das Ereignis
  • OnMarkerClick funktioniert nicht (v2)
  • 2 Solutions collect form web for “Holen Sie sich id von TextView in Fragment von FragmentActivity in ViewPager”

    Sie können nicht auf die Textansicht von fragment activity zugreifen, da sie sich auf fragment und Ihrem fragment activity layout befinden, keine text view mit dieser id . Sie müssen auf die Textansicht von Ihrem third fragment zugreifen, wo Sie es in seinem layout . Dann greife das object aus deiner fragment activity .

    In deinem fragment etwas so machen

     TextView mTextView; mTextView = (TextView)getView().findViewById(R.id.your_text_view); 

    Erstellen Sie eine Funktion wie diese

     public void changeText(String mText) { mTextView.setText(mText); } 

    In deinem Aktivitätsergebnis

     //Do not create new object each time you set text. Use the same fragment object which you use for view pager. Your_Fragment mFragment; protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case FILE_SELECT_CODE: if (resultCode == RESULT_OK) { //Set text from here mFragment.changeText(imgName); } 

    Sie können ein Layout aufblasen, in dem textView deklariert wird:

     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.your_layout, this, false); 

    und dann:

     textViewImg = (TextView) view.findViewById(R.id.textViewUrlImgLectura); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.