1

Как сделать что-то вроде этого?Android ImageButton ListView

image?

Для моего применения Я хочу некоторый список кнопок изображения, и если я нажму одну кнопку, я хочу что-то сделать. Я действительно искал все google, чтобы найти это, и я нашел пример, но все они сложны и имеют более подробную информацию.

Может кто-нибудь предложить мне один учебник или пример о том, как сделать ПРОСТОЙ список кнопка изображения?

+0

почему вы хотите использовать изображение кнопки? onListItemClick of listview может сделать ваш porpose – MHP

+0

Я хочу эксклюзивную кнопку изображения, потому что это одно требование в моем приложении :(, мне нужно использовать его и только его. –

+0

, поэтому вам нужно использовать listview, чтобы каждый элемент был ImageButton, и вы должны установить onClick для каждого ImageButton внутри вашего пользовательского адаптера в методе getView – MHP

ответ

4

Ну, простой способ составить список кнопок - это создать адаптер. Вы могли бы использовать это, делая список что-то ButtonListAdapter buttonListAdapter = new ButtonListAdapter(context, List<"of whatever you send in">);. А потом со списком list.setAdapter(buttonListAdapter);

class ButtonListAdapater extends BaseAdapter 
{ 
Context mContext; 
private LayoutInflater mInflater; 
List<"whatever you want to pass in such as images or textfiels or classes"> mDatas; 

public ButtonListAdapater (Context context, List<"whatever you want to pass in such as images or textfiels or classes"> results) 
{ 
    mContext = context; 
    mDatas = results; 
    mInflater = LayoutInflater.from(mContext); 
} 

@Override 
public int getCount() 
{ 
    return mDatas.size(); 
} 

@Override 
public Object getItem(int position) 
{ 
    return null; 
} 

@Override 
public long getItemId(int position) 
{ 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ViewHolder holder; 

    "whatever you want to pass in such as images or textfiels or classes" data = mDatas.get(position); 

    if (convertView == null) { 
           "whatever layout you made, on click effect can be in layout on in code" 
     convertView = mInflater.inflate(R.layout.data_list_item, null); 

     holder = new ViewHolder(); 

     holder.tvButton = (TextView) convertView.findViewById(R.id.textViewButton); 
     holder.lbButton = (ImageButton) convertView.findViewById(R.id.Button); 

     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.tvButton.setText(data.getData()); 

    "With the button here it depends on what you want to do and how, since its perfectly fine to put an onclicklistener here or in the layout" 
    holder.llButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(context, OTherActivity.class); 
      startActivity(intent) 
     } 
    }); 


    return convertView; 
} 

static class ViewHolder 
{ 
    TextView tvButton; 
    ImageButton lbButton; 
} 

И data_list_item расположение XML может быть что-то простое, такие как

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/R.id.Button/> 

</LinearLayout>