рд╣реИрд▓реЛ, рд╣рдмреНрд░рд╣рд╛рдм!
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╛рдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдХреМрди рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред
рдкреГрд╖реНрдарднреВрдорд┐
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдПрдХ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╢реНрдп рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХрдард┐рдирд╛рдИ рдпрд╣ рдереА рдХрд┐ рдЬрдм рдЖрдк рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ (рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рджреГрд╢реНрдп рдЖрдкрдХреА рдЙрдВрдЧрд▓реА рдХреЗ рдиреАрдЪреЗ рд╣реИ) рдкрд░ onListItemClick () рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореБрдЭреЗ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХрдИ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореИрдВрдиреЗ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рдирд╛рдо, рдкреИрдХреЗрдЬ, рд╕рдВрд╕реНрдХрд░рдг ANDROID - рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк:
рд░реЗрд╕ / рд▓реЗрдЖрдЙрдЯ / row.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:id="@ +id/text_view" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/btn_position" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout>
MainActivity.java import android.os.Bundle; import android.app.ListActivity; public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] objects = new String[] {"iOS", "Windows Mobile", "Windows Phone", "Android", "Symbian", "Java", "Ubuntu", "Windows", "Linux", "Mac OS", "DOS", "ChromeOS"}; MyListAdapter adapter = new MyListAdapter(this, objects); setListAdapter(adapter); } }
рдореИрдВ рдкрд╛рда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ ListActivity рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред SimpleAdapter рдФрд░ рдЙрд╕рдХреЗ ArrayList <Map <String, Object >> рдпрд╛ BaseAdapter рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╡рдХреВрдл рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдПрдбрд╛рдкреНрдЯрд░ рдХреЛ ArrayAdapter рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ ViewHolder рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ - рд╣рдореЗрдВ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдбреЙрдкреНрдЯрд░ рдХреЛрдб рд╣реА:
MyListAdapter.java import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MyListAdapter extends ArrayAdapter<String> implements OnClickListener { private Context context; private String[] objects; public MyListAdapter(Context c, String[] data) { super(c, IGNORE_ITEM_VIEW_TYPE, data); context = c; objects = data; } public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(context); View view = inflater.inflate(R.layout.row, null, true); TextView text_view = (TextView) view.findViewById(R.id.text_view); text_view.setText(objects[position]); text_view.setOnClickListener(this); Button btn_position = (Button) view.findViewById(R.id.btn_position); btn_position.setTag(String.valueOf(position)); btn_position.setOnClickListener(this); return view; } public void onClick(View view) { if (view.getId() == R.id.btn_position) { Toast.makeText(context, "position = " + view.getTag().toString(), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "onListItemClick", Toast.LENGTH_SHORT).show(); } }
рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рд╣рдордиреЗ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИред GetView рдореЗрдердб (рдЗрдВрдЯ рдкреЛрдЬрд╝рд┐рд╢рди, рд╡реНрдпреВ рдХрдиреНрд╡рд░реНрдЯрд╡реНрдпреВ, рд╡реНрдпреВрдЧреНрд░реБрдк рдкреЗрд░реЗрдВрдЯ) рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рд╕реНрдЯ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпреВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдЬрдЧрд╣ рдмрдЯрди рдвреВрдВрдврддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЛрд╕реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ! рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ,
onListItemClick (ListView l, View v, int position, long id) рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ ( рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП) рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдЪреНрдЫрд┐рдд рдмрдЯрди рдкрд░ рдФрд░ рдЕрдиреНрдп рд╕рднреА рджреГрд╢реНрдп рдореЗрдВ рдПрдбреЗрдкреНрдЯрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ :( рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ - рд╕рднреА OnClickListener рддрддреНрд╡реЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ - рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдмрдЯрди рд╣реИ, рддреЛ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ, рдЕрдиреНрдпрдерд╛ - рдФрд░ рдПрдХ рдФрд░ред рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЗрдирдЕрд▓реЗрдпрдЖрдЙрдЯ рдпрд╛ рд░рд┐рд▓реЗрдЯрд┐рд╡ рд▓рдпрдЖрдЙрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЗрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рд╣реИред
рдЦреИрд░, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗред