2016-04-10 38 views
-1

Tıklanan her bir öğeyi farklı bir textView içine görüntülemek istiyorum. Ben şimdi aynı textView içinde her bir tıklama görüntüleniyor ama yeni bir textView görüntülenecek veri için her bir tıklama istiyorum. Herhangi bir fikir?Farklı görünümler listesine liste görüntüleme bilgilerini görüntüleme

 ExercisesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      private String result; 
      TextView Exercise1TextView = (TextView) findViewById(R.id.Exercise1TextView); 
      TextView Exercise2TextView = (TextView) findViewById(R.id.Exercise2TextView); 


      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       String Exercise = String.valueOf(adapterView.getItemAtPosition(i)); 
       result = (Exercise1TextView.getText().toString() + "\n" + Exercise); 
       Exercise1TextView.setText(result); 

      } 


     }); 

cevap

1

onItemClick() içinde onları çağırmak burada ben bugüne kadar ne olduğunu Çok basit, dinamik olarak yeni TextViews oluşturmalı ve bunlara setText. Bu şekilde devam etmelisin. Aşağıda olduğu gibi, ana düzeninizde liste isteğinizin altında veya altında istediğiniz zaman doğrusal bir çıkış ekleyin. senin Bir Etkinlikte

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:id="@+id/main_layout" 
     /> 

sizin onItemClick Şimdi

public class MainActivity extends Activity { 

      private LinearLayout mainLayout; 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(....); 
        setContentView(....); 
        this.mainLayout = (LinearLayout) findViewById(R.id.main_layout); 
      } 
    } 

böyle yapmak bu LinearLayout başlatın.

TextView tv = new TextView(getApplicationContext()); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    tv.setTextColor(Color.BLACK); 
    tv.setText(result); 
    mainLayout.addView(tv, params); 
+0

Linear Layout olmalı? Zaten düzenlenmiş bir düzenim var. Yardım için teşekkürler. – Ryan159

+0

@ user3091082 İstediğiniz düzeni ekleyebilirsin, yukarıdaki kod düzgün çalışır. Her düzende addView yöntemi vardır. Ancak LayoutParams farklı olacaktır. LinearLayout.LayoutParams yerine RelativeLayout.LayoutParams –

+0

gerekecek yardım için teşekkürler – Ryan159

0

böyle TextView'lar dizisi yaratmak:

View[] myViews = {textView1, textView2, ....}; 

Ve sorunun cevabı

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

    k = myViews.length < i ? myViews.length -1 : i; //or use your logic 
    String Exercise = String.valueOf(adapterView.getItemAtPosition(i)); 
    result = (Exercise1TextView.getText().toString() + "\n" + Exercise); 
    myViews[k].setText(result); 

} 
+0

Hızlı yanıt için teşekkürler. Ne yapmaya çalıştığını anlıyorum ama bu satırı tam olarak anlamadım, k = myViews.length Ryan159

+0

"i", liste görünümündeki konumunuzu ima ediyor. Bunu bir örnek için verdim, oradaki mantığınızı kullanmalısınız. Ve orada ne yaptığımı merak etmek istiyorsanız, tıklanan öğenin konumunu kullandım ve myViews [tıklanan öğe konumu] olarak adlandırdım. Görüntüleme sayınız liste öğelerinden myViews [son öğe] olarak adlandırıldığından daha küçükse. Başka bir koşulun kısaltılmış halidir. btw cevabımdaki hataları düzelttim. tekrar bak. – uguboz