Jak w GridView w adapterze kazać dodawać 2 różne komponenty?

0

Eclipse, java, pisanie na androida.

Próbuję nauczyć się korzystania z GridView http://developer.android.com/guide/topics/ui/layout/gridview.html

Na razie osiągnąłem to, że adapter tworzy mi tyle obrazków ile chcę i ustawia je elegancko, wszystko super. Teraz dla odmiany chciałbym zrobić tak by zamiast dodawania na GridView samych ImageViewów, dodawało mi też TextViewy, np. 10x ImageView i 10x TextView.

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {

		ImageView iv = new ImageView(ctx);
		iv.setImageResource(R.drawable.obrazek);
		
		return iv;
	}

ten kod wrzuca mi na okno aplikacji 10 komponentów ImageView (bo w getCount() dałem return 10) i jest ok, jednak chcę dopisać coś do tego kodu, który podałem wyżej, by wrzuciło mi na ekran jeszcze 10 TextViewów (mogą być z identycznym tekstem) i nie bardzo wiem jak. Czy mogę do tego kodu dopisać coś, czy nie? Na końcu kodu jest "redurn iv;" (ImageView), da radę w jakiś sposób dopisać do tej samej linijki lub pod nią by było return textview też? czy nie?
A może muszę gdzieś osobno pisać drugi kod do samych TextViewów?

Jeśli potraficie mi pomóc, będę strasznie wdzięczny.

0

Tworzysz plik z layoutem:


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

    <ImageView
        android:id="@+id/image"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_gravity="center_horizontal" />
    
    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

 @Override
  public View getView(int position, View convertView, ViewGroup parent) {
 

        ImageView iv = new ImageView(ctx);
        iv.setImageResource(R.drawable.obrazek);
 
        return iv;
 }

Pisanie postów na tym forum jest fatalne, masz zedytowaną metodę getView:

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
 
        TwojItemZAdaptera item = getItem(position);

        View v =  LayoutInflater.from(parent.getContext()).inflate(R.layout.plik_z_layoutem.xml, parent,false);
         TextView textView = v.findViewById(R.id.text);
         textView.setText(item.text);
         
         ImageView imageView = v.findViewById(R.id.image);
         //tutaj ustawiasz obrazek z internetu albo źródeł lokalnych
        return iv;
    }

0

@niezalogowany
bardzo, ale to bardzo dziękuję, działa świetnie. Wiem, ze moje podziękowanie nic dla ciebie nie znaczy, ale uwierz, że na prawdę cieszę się, że tą takie osoby jak ty, które poświęcają chwilę by komuś pomóc bezinteresownie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1