java如何使用基本适配器单击每个位置
我使用的是基本适配器,我有一个列表,其中包含文本视图的列表(表示左侧发送的项目,下面是右侧接收的项目),我想单击列表中的每个位置以执行回复消息
请建议我如何执行单击列表项的功能
下面是我正在使用的代码
类MessageAdapter扩展了BaseAdapter{
ViewHolder viewHolder;
LayoutInflater inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
public int getCount() {
// TODO Auto-generated method stub
return Constant_Variables.Sms_Status_list.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.messagelist_row, null);
viewHolder=new ViewHolder();
viewHolder.sms_from_row=(TextView)convertView.findViewById(R.id.sms_from_txtview);
viewHolder.sms_to_row=(TextView)convertView.findViewById(R.id.sms_sendto_txtview);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.sms_from_row.setVisibility(View.VISIBLE);
viewHolder.sms_to_row.setVisibility(View.VISIBLE);
if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_sent))
{
viewHolder.sms_from_row.setVisibility(View.GONE);
viewHolder.sms_to_row.setText("Sent: "+Constant_Variables.Sms_from_list.get(position));
}
else if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_received))
{
viewHolder.sms_to_row.setVisibility(View.GONE);
viewHolder.sms_from_row.setText("Received: "+Constant_Variables.Sms_to_list.get(position));
}
else
{
viewHolder.sms_from_row.setText("Message in queued.");
viewHolder.sms_to_row.setVisibility(View.VISIBLE);
}
convertView.setTag(viewHolder);
return convertView;
}
protected void onListItemClick(ListView l, View v, final int position, long id) {
if(l.callOnClick()== true)
{
Log.i("the Item clicked is at position : ", ""+ position);
}
else
{
Log.i("the Item not clicked is at position : ","the Item not clicked is at position" );
}
}
}
下面是我正在使用的XML代码
<RelativeLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
>
<TextView
安卓:id="@+id/sms_from_txtview"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:padding="12dp"
安卓:layout_alignParentRight="true"
安卓:background="@drawable/blue"
安卓:layout_alignParentTop="true"
安卓:text="From" />
<TextView
安卓:id="@+id/sms_sendto_txtview"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:padding="12dp"
安卓:background="@drawable/red"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentTop="true"
安卓:text="To" />
</RelativeLayout >
问候 阿姆林德辛格
# 1 楼答案
android中有一个监听器,你可以使用它
对于列表项中的单个视图,始终可以在getView方法中添加click listener
# 2 楼答案
单击列表时
单击删除图标
以下是您可以参考的代码:
# 3 楼答案
在项目上写入单击文本视图
# 4 楼答案
初始化该视图时,为这两个视图实现click listener
# 5 楼答案
您的代码是正确的,只需在下面添加click listener
在这个添加下面,像这样点击监听器
希望对你有帮助
谢谢