V S V S - 1 year ago 168
Android Question

How can I set onClickListener on ArrayAdapter?

I'm making class like as below

// All necessary imports are here

public class More extends Activity {

String[] MoreItems = { "Transfers", "Budgets", "Branches", "Tools", "News",
"Customer Service", "Settings", "Help", "About" };

public void onCreate(Bundle savedInstanceState) {

ListView moreListView = (ListView) findViewById(R.id.moreListView);
MoreListAdapter listAdapter = new MoreListAdapter();

// accountsTypeListView.setOnItemClickListener(listClickListner);

class MoreListAdapter extends ArrayAdapter<String> {
MoreListAdapter() {
super(More.this, R.layout.list_item, MoreItems);

public View getView(int position, View convertView, ViewGroup parent) {
View row;

if (convertView == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.list_item, parent, false);
} else {
row = convertView;
TextView tv = (TextView) row.findViewById(R.id.textItem);


return row;

It will generate the List, I want to call respective activities on respective click, like if User click Transfer then it will show transfer Activity,
How can I call onClickListener on this list and how can I start Activity on click.

Answer Source

you can also do like this..

moreListView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Log.d("############","Items " +  MoreItems[arg2] );

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download