android - 如何使用 ListView 的 onitemclicklistener 更改仅选定 ListView 行的布局

标签 android listview custom-adapter

我需要创建像三星联系人列表一样的ListView。我需要在该行被滑动时显示该行的自定义布局。并且还需要在该行的背景中显示联系方式。请给我一些想法或引用。

谢谢。

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;
        }
    });

最佳答案

onItemClickListener内,您可以实现 onItemClick (AdapterView<?> parent, View view, int position, long id) 。如果您检索view ,当用户单击该项目时,您可以对其进行所需的更改。

对于刷卡,您可以修改适配器的 getItem()函数并添加 GestureListener或类似this code 。然后您可以监听滑动并采取相应的行动。

关于android - 如何使用 ListView 的 onitemclicklistener 更改仅选定 ListView 行的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14746349/

相关文章:

java - 当我在 ListView 中添加标题时,我需要执行位置 - 1 来访问后端列表

android - 检查 ListView 项目是否包含指定数据然后开始下一个 Activity

java - 使用自定义适配器在 ListView 中选择/突出显示多个项目 - Android

android - 无法使用其中的 appcompat 元素创建自定义数组适配器

android - 未定义对 'cv::CascadeClassifier::detectMultiScale' 的引用,但其他库链接正确

android - 将Android Gradle 3.0更新为5.1在运行时出现错误

android - 如何在 ListView 中禁用标题 View

c# - 将 ObservableCollection 绑定(bind)到 ListView

java - 使用 CustomAdapter 更改 ListView 的显示方式

java - Android 从 AsyncTask 访问 MainActivity