这可能是一条很长的消息,但我想向所有 stackoverflow 用户提出一个明确的问题。我所做的是在绑定在我的gridview上的类中创建一个静态数组字符串
class ParserArrayList {
//some declaration and codes here
private String [] imageCaptionId = {
"My First Medal",
"You ...",
"The ...",
"Gimme ...",
"A ...",
"Seven ...",
".....City",
".... Madness",
"Loyal...",
".....",
"...",
"Champion..."
};
}
并在公共类 ImageAdapter 上手动绑定它扩展 BaseAdapter
public class ImageAdapter extends BaseAdapter{
//some declaration and variables here
public View getView(int position, View convertView, ViewGroup parent) {
View v;
ParserArrayList arrayImage = new ParserArrayList();
String[] imagetext = arrayImage.getImageCaptionId();
if (convertView == null) {
//some stuff here
}
//some stuff here
return v;
}
如您所见,我正在调用 ParserArrayList 的 'imageCaptionId' 并将其发送到我声明 'imagetext' 的另一个数组字符串
一切正常,直到我发现数组'imageCaptionId'必须基于本地数据库我尝试使用此代码但我无法完成,因为
class ParserArrayList {
//added this code
public SQLiteAdapter sqlAdapter;
//and this one
public void showData(){
sqlAdapter = new SQLiteAdapter(this);
String str = "Select dTitle from achievement_tb where version =0 order by ID ASC;";
sqlAdapter.openToRead();
Cursor c =sqlAdapter.read(str);
sqlAdapter.close();
}
}
第一:我不知道如何将它绑定到数组
第二:我在 ParserArrayList 中创建了它,它给了我一个错误,说 构造函数 SQLiteAdapter(ParserArrayList) 未定义(这已经完成)
你能帮我吗先生
编辑 这是我想要完成的或我的逻辑
在我的 ParserArrayList 类上,我正在尝试添加此代码(我不知道这是否正确)
public String[] showImageCaption(){
String imageCaptionIds [];
sqlAdapter = new SQLiteAdapter(mContext);
String str = "Select dTitle from achievement_tb where version =0 order by ID ASC;";
sqlAdapter.openToRead();
Cursor c =sqlAdapter.read(str);
imageCaptionIds [c.getCount()];
sqlAdapter.close();
return imageCaptionIds;
}
这给了我一个错误,说语法错误,插入“AssignmentOperator Expression”以完成表达式
现在在我的 ImageAdapter 扩展 BaseAdapter 这是我的代码
public View getView(int position, View convertView, ViewGroup parent) {
View v;
ParserArrayList arrayImage = new ParserArrayList(mContext);
newArrayList2 = arrayImage.getArraylist();
**String[] imagetext = arrayImage.showImageCaption();**
if (convertView == null) { // if it's not recycled, initialize some attributes
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.medal_grid, null);
}
else
{
v = convertView;
}
TextView tv = (TextView)
v.findViewById(R.id.grid_item_label);
**tv.setText(imagetext[position]);**
ImageView iv = (ImageView)v.findViewById(R.id.grid_item_image);
iv.setImageResource((Integer) newArrayList2.get(position));
return v;
}
我的逻辑是我将它绑定到 ParserArrayList 内的 String 数组(它将在其中返回 imageCaptionIds)并将其设置在 textview