2016-06-21 19 views
-2

Ich erstellte eine Aktivität mit TextView, RecyclerView. Ich möchte von einer RecyclerView auf die Elternaktivität TextView zugreifen. Bitte beachten Sie, dass ich bereits Daten in RecyclerView geladen habe.Zugriff auf externe VIEWS auf Aktivität von innen Recyclerview Adapter

Geben Sie bitte eine beliebige Lösung für den Zugriff auf die Elternaktivität TextView.

diesen Code Siehe,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/tv" 
     android:layout_width="match_parent" 
     android:layout_height="50dip" 
     android:layout_marginTop="20dip" 
     android:background="@android:color/holo_orange_dark" 
     android:text="MY TEXT VIEW" 
     android:textAlignment="center" 
     android:textStyle="bold" 
     android:textSize="20sp"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/rv" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    </android.support.v7.widget.RecyclerView> 

</LinearLayout> 

ich einige Daten mit RecyclerView (rv) durch kundenspezifische Adapter,

rv.setLayoutManager(new LinearLayoutManager(this)); 
mAdapter = new custom_Adapter(this,loadData()); 
rv.setAdapter(mAdapter) 

nun erfolgreich geladen, aus meinem benutzerdefinierten Adapter "onBindViewHolder" möchte ich Zugriff auf meine Elternaktivität TextView (TV). Kindly

@Override 
    public void onBindViewHolder(final CartViewHolder holder, int position) { 
    .... 
    } 
+1

teilen einige code .. !! –

+0

du bist das Layout inflater gesetzt, nicht? (Sie haben keinen Code hinzugefügt) ... Es gibt eine Menge Beispiele auf Webweb, hier ist eine: https://www.youtube.com/watch?v=Wq2o4EbM74k – AsfK

+0

@AswK, ich habe bereits Daten in RecyclerView geladen ohne Problem. Ich möchte auf meine Elternaktivität TextView (tv) zugreifen. – Chandrahasan

Antwort

0

Eine Aufgabe der Elternklasse raten sollte in der Adapter-Klasse erstellt werden und soll im Konstruktor in Adapter-Klasse auf die Referenz der Elternklasse gleich eingestellt werden. Ihr Adapter Klassenkonstruktors sollte wie folgt sein:

ParentActivity mParentActivity; 
    public custom_Adapter(ParentActivity parentActivity,Something Else){ 
     this.mParentActivity=parentActivity; 
    } 

mParentActivity ist ein Ziel der übergeordneten Klasse und kann verwendet werden, um alles für den Zugriff auf öffentlich in Ihrer Elternklasse wie mParentActivity.name

1

Idealerweise in Mit onCreate() Ihrer übergeordneten Aktivität würden Sie eine Instanzvariable zuweisen, die einen Verweis auf die TextView enthält.

TextView textView; // Your TextView 

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

    // Initialize TextView so you can access it later 
    textView = (TextView) findViewById(R.id.text_message); 
    } 
} 

Jetzt können Sie auf Ihre TextView von den überschriebenen Methoden für Adapter zugreifen.

@Override 
public void onBindViewHolder(final CartViewHolder holder, int position) { 
    textView.setText("text here"); 
} 
Verwandte Themen