2010-02-11 15 views

cevap

54

Eğer senin onCreate bu

setContentView(R.layout.the_view); 
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, myList); 
ListView lv = (ListView)findViewById(android.R.id.list); 
lv.setAdapter(adapter); 
lv.setOnItemClickListener(new OnItemClickListener() 
{ 
    @Override 
    public void onItemClick(AdapterView<?> a, View v,int position, long id) 
    { 
      Toast.makeText(getBaseContext(), "Click", Toast.LENGTH_LONG).show(); 
     } 
}); 
+4

OnItemClick-Method'ı nasıl ve nerede tanımlarsınız? buna geçersiz kılma işlevi gelen –

+3

hiçbir tanım – Webnet

+1

@PascalKlein yararlı olacaktır 'adapter' kendisi için var burada –

1

gibi bir şey olabilir de olabilir de Sonra bu

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<ListView android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="fill_parent" 

gibi bir liste görünümü içeren etkinlik için bir xml düzeni varsa Düzeninizi referans alın, kodunuzdan bir düzen nesnesini oluşturun ve sonra ListView'i Java'da oluşturun. Bu, çalışma zamanında dinamik yükseklik ve genişlik ayarı açısından size biraz esneklik sağlar.

11

şu programlı basit ListView oluşturur:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     String[] myList = new String[] {"Hello","World","Foo","Bar"};    
     ListView lv = new ListView(this); 
     lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myList)); 
     setContentView(lv); 
} 
+0

Merhaba Cchenesson ... bu kodu takip ettiğimde, Eclipse'imde bir" Edit Source "alıyorum (yani çalışmaz.) Neden bu? – TIMEX

+0

Garip - Yeni bir android primi oluşturdum, kopyalayıp yapıştırın, herhangi bir problem olmadan çalıştırın. Etkinlik için tüm kodu yayınlayabilir misiniz? Eclipse'de "Kaynağı Düzenle" yi nerede görüyorsunuz? – ccheneson

+0

Bu sorun var mı? http://android.opensourceror.org/2010/01/18/android-source/ – ccheneson

28

sizin res/düzen/main.xml dosyasında aşağıdaki kaynak ekleyin:

<ListView 
    android:id="@+id/id_list_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

your_class.java

import android.widget.ListView; 
import android.widget.ArrayAdapter; 

public class your_class extends Activity 
{ 
    private ListView m_listview; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    m_listview = (ListView) findViewById(R.id.id_list_view); 

    String[] items = new String[] {"Item 1", "Item 2", "Item 3"}; 
    ArrayAdapter<String> adapter = 
     new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); 

    m_listview.setAdapter(adapter); 
    } 
} 
+0

için çok yararlı bir şekilde teşekkürler! – MaKo

+0

Teşekkürler! sen benim problemimi çözdün! – Grant

1

res/layout/main.xml

ürününüzde aşağıdaki kaynak dosyayı içerir
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

     <ListView 
     android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     </ListView> 
</RelativeLayout> 

MainActivity.java

public class MainActivity extends Activity { 
ListView listView; 
String[] listPlanet={"mercury","Venus","Mars","Saturn","Neptune"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    listView = (ListView)findViewById(R.id.listView)); 

    ArrayAdapter<String> adapter = 
    new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listPlanet); 

    listview.setAdapter(adapter); 

} 

} 
İlgili konular