Autore Topic: Unica Listview per diversi input  (Letto 321 volte)

Offline Zecca

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Ubuntu 12.04, Windows 8
Unica Listview per diversi input
« il: 05 Giugno 2014, 12:05:48 CEST »
0
Ciao sono nuovo e inesperto.
Ho creato una Listview cercando un pò tra vari forum e mi è riuscita anche se in modo un pò rozzo (è tutto sulla stessa classe)
avrei bisogno di utilizzarla con array diversi prendibili dal file res.layout.string
ma non ho idea di come suddividere la classe in modo da poterla richiamare con input diversificati

ListActivity.java
Codice (Java): [Seleziona]
public class ListActivity extends Activity {

        private List<Levels> myLev = new ArrayList<Levels>();  
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_list);
               
                populateLevelsList();
                populateListView();
               
        }

        private void populateLevelsList() {
                myLev.add(new Levels("Absent", R.drawable.null));
                myLev.add(new Levels("Level 1", R.drawable.c1));
                myLev.add(new Levels("Level 2", R.drawable.c2));
                myLev.add(new Levels("Level 3", R.drawable.c3));
                myLev.add(new Levels("Level 4", R.drawable.c4));
                myLev.add(new Levels("Level 5", R.drawable.c5));
                myLev.add(new Levels("Level 6", R.drawable.c6));
                myLev.add(new Levels("Level 7", R.drawable.c7));
                myLev.add(new Levels("Level 8", R.drawable.8));
                myLev.add(new Levels("Level 9", R.drawable.c9));
                myLev.add(new Levels("Level 10", R.drawable.c10));
        }
       
        private void populateListView() {
                ArrayAdapter<Levels> adapter = new MyListAdapter();
                ListView list = (ListView) findViewById(R.id.lv_levels);
                list.setAdapter(adapter);
        }
       
        private class MyListAdapter extends ArrayAdapter<Levels> {
                public MyListAdapter() {
                        super(ListActivity.this,R.layout.row,myLev);
                }

                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                        //make sure we have a view to work with
                        View itemView = convertView;
                        if(itemView == null) {
                                itemView = getLayoutInflater().inflate(R.layout.row, parent, false);
                        }
                       
                        // find the car to work with
                        Levels currentLevel = myLev.get(position);
                       
                        //Fill the view
                        ImageView imageView = (ImageView) itemView.findViewById(R.id.img_lv);
                        imageView.setImageResource(currentLevel.getIcon()) ;
                       
                        TextView text = (TextView) itemView.findViewById(R.id.txt_lv);
                        text.setText(currentLevel.getLevel());
                       
                        return itemView;
                }      
        }
}

mi servirebbe un aiuto su come salvare l'array su string in modo corretto e come richiamare la lista fornendogli una variabile per recuperare l'array giusto

questi sono un esempio di dati che vorrei mettere nel file string
Codice (Java): [Seleziona]
private void populateLevelsList() {
        myLev.add(new Levels("Absent", R.drawable.null));
        myLev.add(new Levels("Level 1", R.drawable.c1));
        myLev.add(new Levels("Level 2", R.drawable.c2));
        myLev.add(new Levels("Level 3", R.drawable.c3));
        myLev.add(new Levels("Level 4", R.drawable.c4));
        myLev.add(new Levels("Level 5", R.drawable.c5));
        myLev.add(new Levels("Level 6", R.drawable.c6));
        myLev.add(new Levels("Level 7", R.drawable.c7));
        myLev.add(new Levels("Level 8", R.drawable.8));
        myLev.add(new Levels("Level 9", R.drawable.c9));
        myLev.add(new Levels("Level 10", R.drawable.c10));
}