2010-10-20 3 views
0

Je crée une application Android dans laquelle il y a deux activités. Une activité contient un bouton. En cliquant sur le bouton, je souhaite passer à une autre activité qui affiche une vue de liste contenant peu d'options.Affichage de la liste Cliquez sur le bouton Cliquez sur Android

Deux basculer entre les écrans ou les activités, je suis en utilisant le code suivant

Intent intent = new Intent(Activity1.this,Activity2.class); 
       startActivity(intent); 

Depuis ma classe Activity2 étend la « ListActivity », ce code ne semble pas fonctionner. Sur mon clic de bouton, je veux afficher une vue de liste contenant des données.

Toute aide serait appréciée

@Siddharth je semble faire presque la même chose Voici mon code actuel

de l'activité 1

public void onClick(View v) { 

      Intent intent = new Intent(View_Data.this,CategoryList.class); 
       startActivity(intent); 

     } 

Dans l'activité 2

public class CategoryList extends ListActivity { 

public TextView selection; 
public String[] categories; 
ArrayList<String> type_of_category; 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.category_list); 
    getCategories();  

} 

    public void getCategories() { 

     DBHelper dbhelper = new DBHelper(this); 
     type_of_category = new ArrayList<String>(); 

     type_of_category = dbhelper.getTypesOfQuotes(); 
     String[] items = new String[100]; 
     for(int i=0;i<type_of_type_of_category.size();i++) 
     { 
      items[i] = type_of_type_of_category.get(i); 
     } 

     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items)); 

    } 

}

Voici mon fichier XML

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
> 
<TextView android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello" /> 

</LinearLayout> 

Mon 2ème activité, je reçois l'erreur dans cette ligne

setContentView(R.layout.category_list); 

Répondre

1

Selon que vos données dans la deuxième activité est une base de données ou des données statiques, ce code devrait fonctionner pour vous. Je suppose de votre message que vous n'avez pas besoin d'envoyer des données de la 1ère activité à la 2ème activité. C'est le code réel de mon application qui est piloté par la base de données. Si vous n'utilisez pas de base de données, certaines parties de ce code peuvent être modifiées pour l'utiliser à la place d'une base de données. Il devrait vous aider à démarrer:

De la 1ère activité:

public void onClickListContacts(View target) 
{ 
    Intent listContacts = new Intent(this, com.dzinesunlimited.quotetogo.ContactsList.class); 
    startActivity(listContacts); 
} 

La 2ème activité:

public class ContactsList extends ListActivity { 
DBAdapter dbContactList; 

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

    dbContactList = new DBAdapter(this); 

    // Calls the method to display the ListView of all Contacts 
    fillData(); 
}  

private void fillData() { 
    // Pull the data from the database 
    String[] fields = new String[] { dbContactList.TABLE_CON_NAME }; 
    int[] views = new int[] { android.R.id.text1 }; 

    Cursor c = dbContactList.getAllContacts(); 
    startManagingCursor(c); 

    // Set the ListView 
    ListAdapter prjName = new SimpleCursorAdapter(this, 
      android.R.layout.simple_list_item_1, c, fields, views); 
    setListAdapter(prjName); 

    dbContactList.close(); 

} 

Pour une liste statique, vous pouvez également consulter ce tutoriel: http://www.vogella.de/articles/Android/article.html#lists

Espérons que cela aide. PS: Ce serait une aide précieuse si vous pouviez poster le code de la 2ème activité qui a des problèmes.

Ajouter à votre XML et voir si cela aide:

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" > 
</ListView> 
+0

J'ai posté le code. Je semble faire la même chose. – Mako

+0

Ajout du code en XML. setContentView() fonctionne correctement. L'erreur vient maintenant de la ligne SetListAdapter() – Mako

+0

Modification de String [] items = new String [100] à new String [type_de_catégorie.size()]; a fait l'affaire. On dirait que la plupart des objets vides ont été transmis comme nul. Merci pour l'aide :) – Mako

Questions connexes