java - 在 ListView 中设置ImageDrawable

标签 java android android-listview imageview drawable

在我的 ListView 中,我想这样做,以便它可以更改我制作的 ImageView 中的可绘制对象,但每次运行它时都会出现错误。

ImageView Player;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Player = (ImageView)findViewById(R.id.bob);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.pointguards, PointGuards));
    final ListView lv = getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View view, int position, long id) {
                    String item = (String) lv.getAdapter().getItem(position);
                    //decide how to launch `Intent` depending on `item`
                    if (item == "bob"){
                Intent intent = new Intent("com.example.nba.playerinfo");
                startActivity(intent);
                Player.setImageDrawable(R.drawable.joe);
        }
    };   

这运行完美,但是当我添加 setImageDrawable 时它崩溃了。 编辑:我想要更改的可绘制对象是我想要的 Intent

最佳答案

您需要在使用 Intent 启动的 Activity 中设置可绘制图像,而不是在 ListView 中。您可以使用 intent.putExtras("name", name); 传递名称。然后在 Activity 中根据从 Intent extra 获取的名称使用 setImageDrawable

编辑:从Activity中的Intent检索数据:

Intent intent = getIntent();
String name = intent.getStringExtra("name");

然后像这样设置播放器ImageView:

if (name.equalsIgnoreCase("joe")
    Player.setImageDrawable(R.drawable.joe);

关于java - 在 ListView 中设置ImageDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472651/

相关文章:

java - Spring 与 HSQLDB 最新 2.4.0 版本不工作

android - 奥地利是否可以使用 Android 本地化的德语文件夹(drawable-de)?

java - 如何检测 android 应用程序的堆大小使用情况

java - 添加react navigation 6.x后无法使用yarn android

java - 如何在java中为URL手动分配端口

android - 带有复选框行的 ExpandableListView OnChildClickListener 在滚动时不会触发

java - 保存 ListView 状态(行)?

android - 在 LinearLayout 中获取 View 的位置 (Android)

java - 如何获取要在 ArrayList.set() 方法中使用的二维数组列表的索引?

android - 报警服务不工作