[:en]
1. activity_main.xml
2. row_layout.xml
3. MainActivity.java
package com.example.cambridge.listview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ListView; public class MainActivity extends AppCompatActivity { // Start listview ListView listView; int[] movie_poster_resource = {R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5, R.drawable.p6, R.drawable.p7, R.drawable.p8, }; String[] movie_titles; String[] movie_ratings; MovieAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Listview listView = (ListView)findViewById(R.id.list_view); movie_ratings = getResources().getStringArray(R.array.movie_ratings); movie_titles = getResources().getStringArray(R.array.movie_titles); int i=0; adapter = new MovieAdapter(getApplicationContext(),R.layout.row_layout); listView.setAdapter(adapter); for(String titles: movie_titles){ MovieDataProvider dataProvider = new MovieDataProvider(movie_poster_resource[i], titles,movie_ratings[i]); adapter.add(dataProvider); i++; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
4. MovieAdapter.java
package com.example.cambridge.listview; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Created by cambridge on 9/2/16. */ public class MovieAdapter extends ArrayAdapter { List list = new ArrayList(); public MovieAdapter(Context context, int resource) { super(context, resource); } static class DataHandler { ImageView Poster; TextView title; TextView rating; } @Override public void add(Object object) { super.add(object); list.add(object); } @Override public int getCount() { return this.list.size(); } @Override public Object getItem(int position) { return this.list.get(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row; row = convertView; DataHandler handler; if(convertView == null) { LayoutInflater inflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = inflater.inflate(R.layout.row_layout,parent,false); handler = new DataHandler(); handler.Poster = (ImageView)row.findViewById(R.id.movie_poster); handler.title = (TextView)row.findViewById(R.id.movie_title); handler.rating = (TextView)row.findViewById(R.id.movie_rating); row.setTag(handler); }else{ handler = (DataHandler)row.getTag(); } MovieDataProvider dataProvider; dataProvider = (MovieDataProvider) this.getItem(position); handler.Poster.setImageResource(dataProvider.getMovie_poster_resource()); handler.title.setText(dataProvider.getMovie_title()); handler.rating.setText(dataProvider.getMovie_rating()); return row; } }
5. MovieDataProvider.java
package com.example.cambridge.listview; /** * Created by cambridge on 9/2/16. */ public class MovieDataProvider { private int movie_poster_resource; private String movie_title; private String movie_rating; public String getMovie_rating() { return movie_rating; } public MovieDataProvider(int movie_poster_resource,String movie_title,String movie_rating){ this.setMovie_poster_resource(movie_poster_resource); this.setMovie_title(movie_title); this.setMovie_rating(movie_rating); } public void setMovie_rating(String movie_rating) { this.movie_rating = movie_rating; } public int getMovie_poster_resource() { return movie_poster_resource; } public void setMovie_poster_resource(int movie_poster_resource) { this.movie_poster_resource = movie_poster_resource; } public String getMovie_title() { return movie_title; } public void setMovie_title(String movie_title) { this.movie_title = movie_title; } }
6. strings.xml
Top 8 moviesHello world! Settings - One
- Two
- Three
- Four
- Five
- Six
- Seven
- Eight
- R1
- R2
- R3
- R4
- R5
- R6
- R7
- R8
+++++++++++++++++++++++++++++++++++++++++++++++++++
Or Simple ListView with onItemClickListener:
1. activity_main.xml
2. MainActivity.java
(this,android.R.layout.simple_list_item_1,myAdapter); list_view.setAdapter(adapter); // Step 2. Add onItemClickListener list_view.setOnItemClickListener(this); } // Step 3. Add this onItemClick method. That's it. @Override public void onItemClick(AdapterView> arg0, View view, int position, long arg3){ //Toast.makeText(getApplicationContext(),"Position:"+position,Toast.LENGTH_LONG).show(); // Get item name of the list String item_of_list = items[position]; Toast.makeText(this, item_of_list, Toast.LENGTH_LONG).show(); if (item_of_list.equals("a1")){ startActivity(new Intent(this, Register.class)); } if (item_of_list.equals("a2")){ startActivity(new Intent(this, Register.class)); } } }
[:]