【问题标题】:listview + imageview basic code example please请 listview + imageview 基本代码示例
【发布时间】:2012-03-19 18:37:59
【问题描述】:

多年来,我一直在浏览所有可能的网站,但还没有找到我的需求。我需要在android中找到一个基本列表视图的代码示例,它可以让我单击列表中的项目并将我带到显示图像的图像视图(列表中的每个项目都不同)。请为此发布一个工作示例代码,因为它让我发疯,我无法弄清楚:(

【问题讨论】:

  • Here 是 ListView 的教程,从底部到顶部的方式阅读每个教程,您将定义自定义适配器。
  • 谢谢,我会检查一下,但我知道如何制作实际的 listView,我遇到的问题是根据我单击的列表项在 imageView 中显示不同的图像,请参阅我的下面的代码可以更好地理解我的实际要求,因为我的问题有点含糊,看起来仍然是有用的教程,肯定会检查出来:)
  • 是的,我知道了,每当您单击特定列表项时,您都希望在另一个页面中显示该单击项。在该页面中,您希望相应地显示图像。同样,您可以创建ArrayList<Objects>,这样每当您单击特定项目时,您都可以轻松地从该 ArrayList 中获取定位的项目。
  • 哦,我以前从没想过,我会尝试一些,谢谢,但在那种情况下,我会在 image.setImageResource 中放入什么来从我的列表中获取所选项目?跨度>
  • 你应该使用Image URL来存储图片资源。

标签: android listview imageview


【解决方案1】:

我不打算详细介绍如何创建 ListView 或设置适配器或任何此类内容,网络上有很多其他示例可以做到这一点,而您的问题不是问如何设置 ListView 适配器;)

  • 创建一个扩展ListActivity的活动

  • 为您的新ListActivity 创建一个布局并在其中放入一个 ListView (@+id/list) 以我为例

  • 您的清单中有什么? idk,但可以说它是字符串的 ArrayList

现在在您的ListActivity 中覆盖onListItemClick

@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
        if (l.getItemAtPosition(position).equals("LIST1"))
        {
                // Do something with it
        }
}

或者,你不需要 ListActivity,你可以设置一个onItemClickListener 例如

myListView.setOnItemClickListener(new onItemClickListener()
{
    @Override protected void onListItemClick(ListView l, View v, int position, long id) {
        // Do stuff
    }
}

【讨论】:

  • 感谢您的回答,我现在已经尝试通过使用 getItemAtPosition 执行您所说的操作,仅在一个班级中完成整个应用程序,并且在我运行时仍然没有收到任何错误应用程序并按下模拟器刚刚关闭的列表中的任何项目,不知道为什么:/
  • 发布堆栈跟踪和一些代码,您的列表中有哪些对象?
  • 是的,我会尽快回答我自己的话题(在几个小时内),无论如何我有一个应用程序使用带有字符串的数组列表工作,向另一个类发送一个意图与 imageView 连接,然后显示图像。尽管我只让它适用于列表中的一个项目,所以当我可以回答这个问题时,我会发布一些代码,因为如果我按下列表中的不同项目,我需要让它显示不同的图像,而那部分我还没有弄清楚。感谢您抽出宝贵的时间顺便说一句:)
【解决方案2】:

check that link
您需要做的就是更改OnItemClickListener() 方法

【讨论】:

    【解决方案3】:

    好的,这里是代码,首先我们得到列表菜单。

    package item.list.lol;
    
    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class Menu extends ListActivity {
    
    String classes[] = {"startingPoint", "lol"};
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1, classes));
    
    }
    
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        String pointer = classes[position];
        try{
        Class ourClass = Class.forName("item.list.lol." + pointer);
        Intent ourIntent = new Intent(Menu.this, ourClass);
        startActivity(ourIntent);
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }
    }
    

    然后是处理imageView的类

    package item.list.lol;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class startingPoint extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView image = (ImageView) findViewById(R.id.imageView1);
        image.setImageResource(R.drawable.ic_launcher);
    }}
    

    还有 XML

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.67"
        android:src="@drawable/ic_launcher" />
    
    </LinearLayout>
    

    如您所见,它现在只能在我按下列表中的第一个项目时显示图像,我需要一种方法让它在我单击不同的项目时显示不同的图像,有什么想法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      相关资源
      最近更新 更多