gpt4 book ai didi

android - 无法从 View 转换为相对布局

转载 作者:行者123 更新时间:2023-11-30 02:46:52 25 4
gpt4 key购买 nike

我试图解决我遇到的以下问题 - 无法从 View 转换为相对布局。简而言之,我试图为从 JSON 数据生成的每个项目 ListView 数组提供背景图像。我已经在 J​​SON 中设置了背景图片的 url。 JSON 函数已经配置好,因此我已经能够从在线源将数据填充到应用程序中。

我认为问题在于这些行

 View itemView = inflater.inflate(R.layout.listview_item, parent, false);
RelativeLayout rootRelativeLayout=itemView.findViewById(R.id.rootRelativeLayout);

new ImageDownloadTask(rootRelativeLayout,"http://dooba.ca/analytics/ed.php").execute()

;

完整代码如下

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class ListViewAdapter extends BaseAdapter {

// Declare Variables

Context context;
LayoutInflater inflater;
ArrayList<HashMap<String, String>> data;
ImageLoader imageLoader;
HashMap<String, String> resultp = new HashMap<String, String>();

public ListViewAdapter(Context context,
ArrayList<HashMap<String, String>> arraylist) {
this.context = context;
data = arraylist;
imageLoader = new ImageLoader(context);
}

@Override
public int getCount() {
return data.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

public View getView(final int position, View convertView, ViewGroup parent) {
// Declare Variables
TextView list_item_name;
TextView country;
TextView list_item_price;
ImageView list_item_bac;

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

View itemView = inflater.inflate(R.layout.listview_item, parent, false);
RelativeLayout rootRelativeLayout=itemView.findViewById(R.id.rootRelativeLayout);

new ImageDownloadTask(rootRelativeLayout,"http://dooba.ca/analytics/ed.php").execute();
//rootRelativeLayout.setBackground(null);
// Get the position
resultp = data.get(position);

// Locate the TextViews in listview_item.xml
list_item_name = (TextView) itemView.findViewById(R.id.list_item_name);
country = (TextView) itemView.findViewById(R.id.country);
list_item_price = (TextView) itemView.findViewById(R.id.list_item_price);

// Locate the ImageView in listview_item.xml
list_item_bac = (ImageView) itemView.findViewById(R.id.list_item_bac);

// Capture position and set results to the TextViews
list_item_name.setText(resultp.get(MainActivity.LIST_ITEM_NAME));
country.setText(resultp.get(MainActivity.COUNTRY));
list_item_price.setText(resultp.get(MainActivity.LIST_ITEM_PRICE));
// Capture position and set results to the ImageView
// Passes flag images URL into ImageLoader.class
imageLoader.DisplayImage(resultp.get(MainActivity.LIST_ITEM_BAC), list_item_bac);
// Capture ListView item click
itemView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// Get the position
resultp = data.get(position);
Intent intent = new Intent(context, SingleItemView.class);

intent.putExtra("list_item_name", resultp.get(MainActivity.LIST_ITEM_NAME));

intent.putExtra("country", resultp.get(MainActivity.COUNTRY));

intent.putExtra("list_item_price",resultp.get(MainActivity.LIST_ITEM_PRICE));

intent.putExtra("list_item_bac", resultp.get(MainActivity.LIST_ITEM_BAC));
// Start SingleItemView Class
context.startActivity(intent);

}
});
return itemView;
}
AsyncTask<View,View,View> mytask= new AsyncTask<View,View,View>() {

@Override
protected View doInBackground(View... params) {
Bitmap img = imageLoader.loadImageSync(list_item_bac);

return null;
}
};

class ImageDownloadTask extends AsyncTask<View, View, View>
{
RelativeLayout mrelativelayout;
String downloadUrl;
Bitmap img;
public ImageDownloadTask(RelativeLayout layout,String url)
{

mrelativelayout=layout;
downloadUrl=url;
}
@Override
protected View doInBackground(View... params) {
// TODO Auto-generated method stub
img = imageLoader.loadImageSync(downloadUrl);
return null;
}
protected void onPostExecute(Void result) {
Drawable d = new BitmapDrawable(context.getResources(), img);
mrelativelayout.setBackground(d);
}
}
}

在此先感谢您的支持

最佳答案

更改为:

RelativeLayout rootRelativeLayout=(RelativeLayout)itemView.findViewById(R.id.rootRelativeLayout);

关于android - 无法从 View 转换为相对布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24871151/

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