gpt4 book ai didi

java - 访问数组时出错

转载 作者:行者123 更新时间:2023-12-01 15:47:37 24 4
gpt4 key购买 nike

菜鸟 Android 开发人员尝试创建一个画廊,缩略图保存在我的服务器上:

我正在尝试在 ImageAdapter 中使用 ArrayList,以便在创建缩略图列表循环时可以引用数组值。我的eclipse包可供下载here因为我可能无法正确解释这一点。当我尝试在数组中引用我的“thumb”值时,在尝试创建“mThumbIds”时出现未定义的错误以及语法错误

我不知道为什么我很难理解这一点。

showThumb.java:

package com.flash_tattoo;

import android.os.Bundle;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

public class showThumb extends Activity{



public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridlayout);

Bundle bundle = getIntent().getExtras();
String jsonData = bundle.getString("jsonData");


JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(jsonData);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

ArrayList<image_data> myJSONArray = new ArrayList<image_data>();

for(int i=0;i<jsonArray.length();i++)
{

JSONObject json_data = null;

try {
json_data = jsonArray.getJSONObject(i);
} catch (JSONException e) {
e.printStackTrace();
}

try {
image_data.id = json_data.getInt("id");
} catch (JSONException e) {
e.printStackTrace();
}
try {
image_data.name = json_data.getString("name");
} catch (JSONException e) {
e.printStackTrace();
}
try {
image_data.thumb = json_data.getString("thumb");
} catch (JSONException e) {
e.printStackTrace();
}
try {
image_data.path = json_data.getString("path");
} catch (JSONException e) {
e.printStackTrace();
}
myJSONArray.add(new image_data());
}


GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this,myJSONArray));

gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(showThumb.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
}

图像适配器:

package com.flash_tattoo;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;

public class ImageAdapter extends ArrayAdapter<image_data>

{
//This code below was put in when I change from BaseAdapter to ArrayAdapter

public ImageAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
// TODO Auto-generated constructor stub
}

private Context mContext;

public int getCount() {
return mThumbIds.length;
}

public image_data getItem(int position) {
return null;
}

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

// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}

imageView.setImageResource(mThumbIds[position]);
return imageView;
}

// references to our images
private Integer[] mThumbIds = {

for(int i=0;i<myJSONArray.lenght();i++){
Object[] myJSONArray;
setImageDrawable(Drawable.createFromPath(myJSONArray[i].thumb)
};

};
}

最佳答案

您有一个 Integer[] 类型的私有(private)字段 mThumbIds,并且您尝试内联初始化它,但您未能这样做,因为您有一个带有语句的静态 block {}。

我想说你只需要声明:

private Integer[] mThumbIds;

然后,在构造函数中您可以填充数组。

关于java - 访问数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838448/

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