package com.example.asw20130514;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Configuration;
import android.support.v4.app.NotificationCompat.Action;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemClickListener
{
private final ArrayList<Action> actions = new ArrayList<Action>();
private ActionListAdapter adapter;
private Button button;
private ImageView imageView;
private ImageButton ImageButton;
//TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView)findViewById(R.id.list);
actions.add(new Action(Action.FORWARD));
actions.add(new Action(Action.TURN_LEFT));
adapter = new ActionListAdapter(this, actions);
listView.setAdapter(adapter);
// listview.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
// PhoneInfo pi = phones.get(position);
// Toast.makeText(this, pi.name, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.add_front:
actions.add(new Action(Action.FORWARD));
adapter.notifyDataSetChanged();
return true;
case R.id.add_left:
actions.add(new Action(Action.TURN_LEFT));
adapter.notifyDataSetChanged();
return true;
case R.id.delete:
actions.remove(0);
adapter.notifyDataSetChanged();
return true;
case R.id.button:
actions.remove(1);
adapter.notifyDataSetChanged();
return true;
case R.id.edit:
return true;
}
return super.onOptionsItemSelected(item);
}
private static final class Action
{
int id;
int icon;
int name;
private final int[] icons = new int[] { R.drawable.forward_on, R.drawable.left_on };
private final int[] names = new int[] { R.string.forward, R.string.turn_left };
static final int FORWARD = 0;
static final int TURN_LEFT = 1;
Action(int id)
{
this.id = id;
this.icon = icons[id];
this.name = names[id];
}
}
private static final class ActionListAdapter extends ArrayAdapter<Action>
{
private final LayoutInflater inflater;
ActionListAdapter(Context context, ArrayList<Action> list)
{
super(context, 0, list);
inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null)
{
convertView = inflater.inflate(R.layout.item, null);
holder = new ViewHolder();
holder.icon = (ImageView)convertView.findViewById(R.id.icon);
holder.name = (TextView)convertView.findViewById(R.id.name);
holder.button = (ImageButton)convertView.findViewById(R.id.button);
convertView.setTag(holder);
}
else
holder = (ViewHolder)convertView.getTag();
final Action action = getItem(position);
holder.icon.setImageResource(action.icon);
holder.name.setText(action.name);
holder.button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});
convertView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Toast.makeText(getContext(), pi.name, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
private static final class ViewHolder
{
ImageView icon;
TextView name;
ImageButton button;
}
}
}
위의 소스는 MainActivity.java 소스 입니다.

옆의 버튼입니다..
버튼의 id 는 button 입니다.