当前位置: 首页 > 知识库问答 >
问题:

带有图像的自定义列表视图凌空在真实设备中不起作用

仲孙疏珂
2023-03-14

谁来帮我解决一下这个问题。因为这个问题我已经卡了3天了-_-!

我可以使listview与图像和文本使用凌空库,它的作品在模拟器(我使用geny运动模拟器)的图像和文本显示。但是当我在我的设备(Android果冻4.3.0)中运行它时,listview是空的。层是空白的(空的)。我不知道为什么。

这是我的片段代码

public class DaftarBarang_Layout extends Activity{

private List<Produk> produkList = new ArrayList<Produk>();
private ListView listView;
private CustomListAdapter adapter;
private ProgressDialog pDialog;
private ServerRequest serverRequest;
JSONArray member = null;
private static final String url = "http://192.168.117.1:808/Koen_CI/index.php/daftar_barang_control";

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.daftarbarang_layout);

    listView = (ListView) findViewById(R.id.list);
    adapter = new CustomListAdapter(this, produkList);
    listView.setAdapter(adapter);

    btnBack = (Button)findViewById(R.id.btnBackDaftarBarang);        
    setBehavior();

 // Creating volley request obj
        JsonArrayRequest produkReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d("TAG", response.toString());
                        hidePDialog();
                        // Parsing json
                        for (int i = 0; i < response.length(); i++) {
                            try {

                                JSONObject obj = response.getJSONObject(i);
                                Produk produk = new Produk();
                                produk.setNamaProduk(obj.getString("nama_produk"));
                                produk.setHargaProduk(obj.getString("harga_produk"));
                                produk.setFotoProduk(obj.getString("foto_produk"));
                                Log.d("TAG", "TAG : " + produk.getNamaProduk());    

                                // adding movie to movies array
                                produkList.add(produk);

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }

                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d("TAG", "Error: " + error.getMessage());
                        hidePDialog();

                    }
                });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(produkReq);
}

我确定 URL 很好,并且图像返回 http://192.168.117.1:808/Koen_CI/gambarbaju/batik.jpg。

问题是,为什么在实际设备中listview不显示,但在模拟器中listview显示…

对不起,我的英语不好,但无论如何谢谢..:)

这是我的自定义列表适配器:

public class CustomListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Produk> produkItems;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();

public CustomListAdapter(Activity activity, List<Produk> produkItems) {
    this.activity = activity;
    this.produkItems = produkItems;
}

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

@Override
public Object getItem(int location) {
    return produkItems.get(location);
}

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

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

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.list_row, null);

    if (imageLoader == null)
        imageLoader = AppController.getInstance().getImageLoader();
    NetworkImageView thumbNail = (NetworkImageView) convertView
            .findViewById(R.id.thumbnail);
    TextView title = (TextView) convertView.findViewById(R.id.title);
    TextView rating = (TextView) convertView.findViewById(R.id.rating);

    // getting movie data for the row
    Produk p = produkItems.get(position);

    // thumbnail image
    thumbNail.setImageUrl(p.getFotoProduk(), imageLoader);

    // title
    title.setText(p.getNamaProduk());

    // rating
    rating.setText("Harga: " + p.getHargaProduk());

    return convertView;
}

共有1个答案

通迪
2023-03-14

将此代码添加到 onCreate 或 init 方法。

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

如果这不起作用,请发布显示警告或错误的日志猫。

 类似资料:
  • 所以我正在创建一个列表视图,其中每一行都有一个Imageview(用于预览图像)、一个textView和一个按钮(用于删除图像)。 问题: 单击该项目的 但有时代码工作正常,有时只是显示错误的项目编号。 更新: 我忘了补充,文本视图中显示的值是:“标志:#”其中#是该项目的当前计数号。我不能理解的总是正确的,但不是我得到的祝酒词: s 背景工作: 页面顶部有一个按钮,用户可以通过该按钮单击照片,当

  • 我不认为为每个决议创建新视图是一个好主意。我尝试将视图缩放为乘以设备的密度(),但这对低分辨率设备没有影响,但在高分辨率设备上,视图占用了整个屏幕(您看不到) 那么为不同设备制作自定义视图的最佳方式是什么呢?是我说的对还是有别的方法?

  • 问题内容: 当我需要定制我的UIPageControl解决方案。 为新版本的swift稍微修改一下即可: 我的问题是,当您第一次启动应用程序时,我无法更改图片。仅在页面更改时更改。 在中,我添加了和,但没有结果。我可能做错了什么? 问题答案: Swift 3.0 …您知道是否可以接受声明的风险:“修改现有控件的子视图很脆弱”。 您将必须在viewDidAppear()中调用“ updateDots

  • 我正在创建一个自定义的ImageView,它将我的图像裁剪成一个六边形形状,并添加一个边框。我想知道我的方法是正确的还是我的做法是错误的。有一堆自定义库已经这样做了,但没有一个开箱即用的形状,我正在寻找。话虽如此,这更多的是一个关于最佳实践的问题。 您可以在这个要点中看到完整的类,但主要问题是这是否是最好的方法。我觉得不对,部分原因是一些神奇的数字,这意味着它可能会在某些设备上搞砸。 下面是代码的

  • 问题内容: 我正在尝试制作一个用于创建自定义卡片的应用。我想在自定义背景上添加一些文本(jpg图像)。 最好的方法是什么?在将卡片发送到服务器之前,我需要向用户显示该卡片的预览。 谢谢 问题答案: 使用下面的代码来满足您的要求 您必须在清单文件中使用以下权限。 对于我的设备,访问外部SD卡的路径可能会因其他设备而异。某些设备可能是用于内部SD卡的。在使用此代码之前,只需检查一下即可。 实际上,我为