これは長いメッセージかもしれませんが、stackoverflowユーザー全員に明確な質問をしたいと思います。私がしたことは、グリッドビューにバインドされているクラス内に配列の静的文字列を作成することです
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();
}
}
最初:配列にバインドする方法がわかりません
2番目: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;
}
構文エラーというエラーが表示されます。「AssignmentOperatorExpression」を挿入して式を完成させます
今私の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に設定することです。