gpt4 book ai didi

java - 从 ListView 中隐藏/显示 ImageView

转载 作者:行者123 更新时间:2023-12-01 11:32:26 24 4
gpt4 key购买 nike

我试图根据条件从自定义 ListView 中隐藏/显示 ImageView 。但是,尝试下面的代码并不会根据条件隐藏/显示 ImageView 。正如您在 ma​​inactivity.java 中看到的那样,我现在在 private ArrayListgenerateData() 方法中设置了一个字符串变量message,我已经设置了>message=nopic/message=yespic。我将字符串值(消息值)传递给我的自定义适配器。然后在我的自定义适配器中,如果 message=="nopic"从 ListView 中隐藏 ImageView ,否则在 ListView 中显示 ImageView 。

我尝试了以下代码,但它没有隐藏 ImageView ,而是显示了所有 ImageView 。

你能帮我实现这个目标吗

mainactivity.java

public class MainActivity extends ActionBarActivity 

{

private String[] fruits = 
{
"Apple", "Mango", "Banana", "Grapes", "Straberries", "Pineapple", "Berry"
};

private String message;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ArrayList<Item> items=generateData();

MyAdapter adapter=new MyAdapter(getApplicationContext(),items, message);
final ListView listview = (ListView) findViewById(R.id.listView1);
listview.setAdapter(adapter);

}
private ArrayList<Item> generateData()
{
MyAdapter adapter=new MyAdapter(getApplicationContext(),null, null);

ArrayList<Item> items = new ArrayList<Item>();
for(int i=0; i<fruits.length; i++)
{

if(fruits[i].toString().equals("Grapes"))
{
message = "nopic";
items.add(new Item("Grapes sweet", null));
adapter.notifyDataSetChanged();
}
else
{
message = "yespic";
items.add(new Item(fruits[i].toString(), null));
adapter.notifyDataSetChanged();
}
}
return items;
}

MyAdapter.java

public class MyAdapter extends ArrayAdapter<Item> {

private final Context context;
private final ArrayList<Item> itemsArrayList;
public String message;

public MyAdapter(Context context, ArrayList<Item> itemsArrayList, String message) {

super(context, R.layout.row, itemsArrayList);

this.context = context;
this.itemsArrayList = itemsArrayList;
this.message = message;

}

@Override
public View getView(int position, View convertView, ViewGroup parent)
{


LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);


View rowView = inflater.inflate(R.layout.row, parent, false);


TextView title = (TextView) rowView.findViewById(R.id.textView1);
ImageView pic = (ImageView) rowView.findViewById(R.id.imageView1);

title.setText(itemsArrayList.get(position).getTitle());
if(message == "nopic")
{
pic.setVisibility(View.GONE);

}
if(message == "yespic")
{
pic.setVisibility(View.VISIBLE);
pic.setImageResource(R.drawable.abc_ic_voice_search);
}

return rowView;

}

最佳答案

而不是

message == "yespic";

尝试

message.equals("yespic"); 

关于java - 从 ListView 中隐藏/显示 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com