单击列表视图项后的图像滑块

Posted

技术标签:

【中文标题】单击列表视图项后的图像滑块【英文标题】:Image slider after listview item click 【发布时间】:2019-03-05 01:23:39 【问题描述】:

我有大约 50-60 张图片。我想显示这些图像的标题列表,如果我单击一个项目,则必须打开与该项目相对应的图像和该图像的详细信息,然后应该通过滑动查看下一个图像。 我有代码来显示列表视图,我需要代码来点击监听器和图像滑块,因为我是 android 开发的新手。我的代码是

FilmActivity.java , activity_film.xml , filmlist.xml

这些将使用链接的哈希图显示列表视图。现在我需要剩下的代码。

FilmActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
  import java.util.List;
  import java.util.Map;

public class FilmActivity extends AppCompatActivity 

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_film);
    ListView resultsListView = findViewById(R.id.filmlist);


    LinkedHashMap<String, String> filmNames= new LinkedHashMap<>();
    filmNames.put("En veedu En Kanavar" , "1990");
    filmNames.put("Amaravathi","1993");
    filmNames.put("Prema Pusthakam","1993");
    filmNames.put("Paasamalargal","1994");
    List<LinkedHashMap<String, String>> listItems = new ArrayList<>();
    SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.biolist,
            new String[]"First Line", "Second Line",
            new int[]R.id.text1, R.id.text2);


    Iterator it = filmNames.entrySet().iterator();
    while (it.hasNext()) 
        LinkedHashMap<String, String> resultsMap = new LinkedHashMap<>();
        Map.Entry pair = (Map.Entry) it.next();
        resultsMap.put("First Line", pair.getKey().toString());
        resultsMap.put("Second Line", pair.getValue().toString());
        listItems.add(resultsMap);
    

    resultsListView.setAdapter(adapter);


 

activity_film.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:layout_>

<ListView
    android:id="@+id/filmlist"
    android:layout_
    android:layout_
    android:layout_alignParentStart="true"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="0dp" />
</RelativeLayout>

电影列表.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_
android:layout_
android:background="@color/colorPrimaryDark">

<TextView android:id="@+id/text1"
    android:layout_
    android:layout_
    android:textColor="@color/colorAccent"
    android:textSize="21sp"
    android:textStyle="bold"
    />

<TextView android:id="@+id/text2"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textColor="@color/white"
    android:textStyle="bold"
    />

</LinearLayout>

【问题讨论】:

您当前的列表是否显示任何项目? 列表只显示项目。单击一个项目后,我需要显示图像和详细信息 【参考方案1】:

Setclicklistener 在你可以使用 github 库作为图像滑块之后你的项目。有许多库可以在其中使用全屏或横幅滑块样式。例如:

https://github.com/LyndonChin/AndroidScreenSlidePager https://github.com/smarteist/android-image-slider

如果您想自己创建,可以使用 viewpager 进行图像滑动。

【讨论】:

如何使用github库 @Azhagappankathiresan 步骤已经在库中给出了关于在哪里传递代码以及在哪个文件中。【参考方案2】:

您可以根据选定的项目设置OnItemClickListener,您可以重定向到详细信息并显示图像滑块。

更新代码:

    resultsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                                long id) 

            LinkedHashMap<String, String> selectItem = listItems.get(position);
            String firstLine = selectItem.get("First Line");
            String secondLine = selectItem.get("Second Line");

            Intent intent = new Intent(FilmActivity.this, FilmDetailActivity.class);

            intent.putExtra("firstLine", firstLine);
            intent.putExtra("secondLine", secondLine);
            startActivity(intent);
        
    );

【讨论】:

在内部类中访问的变量 listItems 应声明为 final ......这是我得到的错误 @Azhagappankathiresan 您可以将其设为最终版本或在全球范围内声明。 即是哪个类的对象。然后我需要知道在哪里插入你给的代码 需要在resultsListView.setAdapter(adapter)下面添加代码;

以上是关于单击列表视图项后的图像滑块的主要内容,如果未能解决你的问题,请参考以下文章

Listview 添加第二项后仅显示一项

android在单击按钮时更改列表视图内的图像视图

如何通过单击android中的列表视图打开图像?

单击 ArrayAdapter 中的图像以删除列表视图中的项目

用另一个列表替换主活动中的列表并从视图中删除旧列表

从列表视图中检索数据并将其显示在文本视图/图像视图中