Android 如何使用listview的in-McClickListener更改仅选定listview行的布局
我需要创建Android 如何使用listview的in-McClickListener更改仅选定listview行的布局,android,listview,custom-adapter,Android,Listview,Custom Adapter,我需要创建ListView如Samsung联系人列表。当该行被刷卡时,我需要显示该行的自定义布局。还需要在该行的背景显示联系人详细信息。请给我一些想法或参考 多谢各位 list.setOnItemClickListener(stationSelectionListener); final ListSwipeDetector listSwipeDetector=new ListSwipeDetector(); list.setOnTouchListener(listSwipeDetector);
ListView
如Samsung联系人列表
。当该行被刷卡时,我需要显示该行的自定义布局。还需要在该行的背景显示联系人详细信息。请给我一些想法或参考
多谢各位
list.setOnItemClickListener(stationSelectionListener);
final ListSwipeDetector listSwipeDetector=new ListSwipeDetector();
list.setOnTouchListener(listSwipeDetector);
new UserAndMessageCount(StationListActivity.this).execute();
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (listSwipeDetector.swipeDetected()){
Toast.makeText(StationListActivity.this,"sWIPE1",Toast.LENGTH_LONG).show();
LayoutInflater inflater=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewNew=inflater.inflate(R.layout.view_flow_common_page, null);
view=viewNew;
}
else {
ConstantValues.STATION_NAME=((TextView)view.findViewById(R.id.textView)).getText().toString();
LayoutInflater inflater=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewNew=inflater.inflate(R.layout.view_flow_common_page, null);
//startActivity(new Intent(getApplicationContext(), StationSelectionActivity.class));
}
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {
if (listSwipeDetector.swipeDetected()){
Toast.makeText(StationListActivity.this,"sWIPE3",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(StationListActivity.this,"sWIPE4",Toast.LENGTH_LONG).show();
}
return false;
}
});
list.setOnItemClickListener(stationSelectionListener);
最终ListSwipeDetector ListSwipeDetector=新ListSwipeDetector();
list.setOnTouchListener(ListSwipedTector);
new UserAndMessageCount(StationListActivity.this).execute();
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(ListSwipedTector.SwipedTected()){
Toast.makeText(StationListActivity.this,“sWIPE1”,Toast.LENGTH\u LONG.show();
LayoutFlater充气器=(LayoutFlater)getApplicationContext().getSystemService(Context.LAYOUT\u充气器\u服务);
查看视图新建=充气机。充气(R.layout.View\u flow\u common\u页面,空);
视图=视图新建;
}
否则{
ConstantValues.STATION_NAME=((TextView)view.findViewById(R.id.TextView)).getText().toString();
LayoutFlater充气器=(LayoutFlater)getApplicationContext().getSystemService(Context.LAYOUT\u充气器\u服务);
查看视图新建=充气机。充气(R.layout.View\u flow\u common\u页面,空);
//startActivity(新意图(getApplicationContext(),StationSelectionActivity.class));
}
}
});
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
if(ListSwipedTector.SwipedTected()){
Toast.makeText(StationListActivity.this,“sWIPE3”,Toast.LENGTH\u LONG.show();
}否则{
Toast.makeText(StationListActivity.this,“sWIPE4”,Toast.LENGTH\u LONG.show();
}
返回false;
}
});
在onItemClickListener
中,您可以实现onItemClick(AdapterView父项、视图、int位置、长id)
。如果检索视图
,则当用户单击该项目时,可以对其进行所需的更改
对于刷卡,您可以修改适配器的
getItem()
函数,并添加GestureListener
或类似功能。然后,您可以监听滑动并相应地执行操作。很抱歉,我无法创建我的视图。我知道listview滑动,但不知道如何更改listview的选定行。您要在哪里更改选定行?内部getItem()
?或者在onItemClick()
内部?我不知道getItem()的情况,所以我尝试了使用onItemClick()。onItemClick()
的第二个参数view
,是该项的行。然后,您可以将其强制转换为任何视图,并使用findViewById()
访问该行中的其他视图。