Java 动态更改ListView大小并加载图像
我想创建一个ListView,每一行中的图像和文本都会动态改变大小(例如,在开始时ListView不会显示任何内容,然后,我可以向ListView添加条目),我还想ListView可以加载位图图像列表,而不是drawable中的图像 我创建了这段代码,但是代码只从drawable加载图像并创建一次(这意味着我不能动态更改列表-添加或删除listView条目)Java 动态更改ListView大小并加载图像,java,android,Java,Android,我想创建一个ListView,每一行中的图像和文本都会动态改变大小(例如,在开始时ListView不会显示任何内容,然后,我可以向ListView添加条目),我还想ListView可以加载位图图像列表,而不是drawable中的图像 我创建了这段代码,但是代码只从drawable加载图像并创建一次(这意味着我不能动态更改列表-添加或删除listView条目) String[]text={“一”、“二”、“三”、“四”、“五”、“六”、“七”, “八”、“九”、“十”}; int[]image={
String[]text={“一”、“二”、“三”、“四”、“五”、“六”、“七”,
“八”、“九”、“十”};
int[]image={R.drawable.logo,R.drawable.logo,R.drawable.logo,
R.drawable.logo,R.drawable.logo,R.drawable.logo,R.drawable.logo,
R.drawable.logo,R.drawable.logo,R.drawable.logo};
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setAdapter(新的MyCustomAdapter(文本、列表图像));
edittext=(edittext)findViewById(R.id.EditText01);
edittext.addTextChangedListener(新的TextWatcher()
{
公共无效后文本已更改(可编辑)
{
}
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后)
{
}
public void onTextChanged(字符序列,int start,
前整数,整数计数)
{
textlength=edittext.getText().length();
text_sort.clear();
图像_sort.clear();
for(int i=0;i 如果(textlength检查listview的这个实现
检查本教程以了解如何使用自定义列表视图项
艾德:
使用此适配器类:
class MyCustomAdapter extends BaseAdapter{
public static ArrayList text_array = new ArrayList();
public static ArrayList image_array = new ArrayList();
public int getCount(){
return text_array..size();
}
public long getItemId(int position){
return position;
}
public String getItem(int position){
return null;
}
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflate = getLayoutInflater();
View v = inflate.inflate(R.layout.listview, parent, false);
final ImageView image = (ImageView) v.findViewById(R.id.ImageView01);
if(listImages.get(position) != null) {
image.setImageBitmap(image_array.get(position));
image.setVisibility(View.VISIBLE);
} else {
image.setVisibility(View.GONE);
image.setImageBitmap(null);
image.setVisibility(View.VISIBLE);
}
return v;
}
public void addObject(String text, Bitmap bitmap) {
text_array.add(text);
image_array.add(bitmap);
notifyDataSetChanged();
}
}
类MyCustomAdapter扩展了BaseAdapter{
public static ArrayList text_array=new ArrayList();
公共静态ArrayList image_array=new ArrayList();
public int getCount(){
返回文本数组..size();
}
公共长getItemId(int位置){
返回位置;
}
公共字符串getItem(int位置){
返回null;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
LayoutFlater充气=GetLayoutFlater();
视图v=充气。充气(R.layout.listview,父视图,false);
最终ImageView图像=(ImageView)v.findViewById(R.id.ImageView01);
if(listImages.get(position)!=null){
setImageBitmap(image_array.get(position));
image.setVisibility(View.VISIBLE);
}否则{
image.setVisibility(View.GONE);
image.setImageBitmap(空);
image.setVisibility(View.VISIBLE);
}
返回v;
}
公共void addObject(字符串文本、位图){
文本\数组。添加(文本);
图像_数组。添加(位图);
notifyDataSetChanged();
}
}
从活动类中调用addObject函数在列表视图中添加新项目您好,谢谢您的回答,但是此链接对我没有帮助,没有示例说明如何从listView动态添加或删除项目,以及如何将位图图像列表加载到listView…有任何进一步的帮助吗?感谢android示例中的示例您可以看到它的结果它位于ApiDemo应用程序中,用于动态列表视图。要在列表视图中使用图像,您必须为列表视图扩展BaseAdapter/ArrayAdapter类。我更新了代码(getView函数),但我遇到了一个问题(也发布了logcat)
class MyCustomAdapter extends BaseAdapter{
public static ArrayList text_array = new ArrayList();
public static ArrayList image_array = new ArrayList();
public int getCount(){
return text_array..size();
}
public long getItemId(int position){
return position;
}
public String getItem(int position){
return null;
}
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflate = getLayoutInflater();
View v = inflate.inflate(R.layout.listview, parent, false);
final ImageView image = (ImageView) v.findViewById(R.id.ImageView01);
if(listImages.get(position) != null) {
image.setImageBitmap(image_array.get(position));
image.setVisibility(View.VISIBLE);
} else {
image.setVisibility(View.GONE);
image.setImageBitmap(null);
image.setVisibility(View.VISIBLE);
}
return v;
}
public void addObject(String text, Bitmap bitmap) {
text_array.add(text);
image_array.add(bitmap);
notifyDataSetChanged();
}
}