Je suis nouveau sur Android et j'ai vraiment besoin de le faire de cette façon (j'ai envisagé de le faire dans un autre Activity
), mais quelqu'un peut-il me montrer un code simple (juste la fonction onCreate()
méthode) qui peut faire Listview
sans ListActivity
?
Merci
Si vous avez une disposition xml pour l'activité, y compris une liste
<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"
Ensuite, dans votre onCreate, vous pourriez avoir quelque chose comme ça
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();
}
});
Incluez la ressource suivante dans votre fichier res/layout/main.xml:
<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);
}
}
Ce qui suit crée un ListView simple par programme:
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);
}
incluez le fichier de ressources suivant dans votre res/layout/main.xml
<?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);
}
}
Vous pouvez également référencer votre présentation, instancier un objet de présentation à partir de votre code, puis créer le ListView en Java. Cela vous donne une certaine flexibilité en termes de réglage de la hauteur et de la largeur dynamiques lors de l'exécution.