私のサービスがデータをフェッチするのに少し問題があります
jsonParser = new JSONParser();
String userid = data.get(0);
String GroupID = data.get(1);
// String FromDate = fromDate;
String FromDate = data.get(2);
String UpToDate = data.get(3);
String Category = data.get(4);
String Location = data.get(5);
String PageIndex = "1";
String PageSize = "10";
String body = String
.format("{\"UserID\": \"%s\", \"GroupID\": \"%s\", \"FromDate\": \"%s\", \"UpToDate\": \"%s\", \"Category\": \"%s\", \"Location\": \"%s\", \"PageIndex\": \"%s\", \"PageSize\": \"%s\"}",
userid, GroupID, FromDate, UpToDate, Category,
Location, PageIndex, PageSize);
JSONArray json1 = new JSONArray();
json1 = jsonParser.getJSONFromUrl("http://###.com/GetEvents", body);
ページ インデックスが 2 の場合は、11 ~ 20 などをフェッチします。私の質問は、ユーザーが下にスクロールすると、より多くのデータを持つことができるようにデータを設定する方法です。つまり、ページ インデックスは 2 で、最初の 10 個のデータはマップ、リスト、またはデータベースに格納されます。私は Fragment を使用しており、私の Java クラスは拡張されています。
前もって感謝します。
編集済み:好意的な返信をありがとう、これは私の Fragment クラスです
public class ArtFragment extends Fragment implements OnClickListener {
List<String> data = new ArrayList<String>();
User user;// = new User();
String userid = "";
String groupid = "";
String fromDate = "";
String toDate = "";
String category = "";
String location = "";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.music_layout, container, false);
LinearLayout mLayout = (LinearLayout) v
.findViewById(R.id.catagory_linearlayout);
mLayout.setBackgroundResource(R.drawable.music_full);
TableLayout tableLayout = (TableLayout) v.findViewById(R.id.maintable);
tableLayout.removeAllViews();
user = new User();
WebServiceCaller webServiceCaller = new WebServiceCaller();
DatabaseHandler db = new DatabaseHandler(getActivity());
user = db.getUser();
userid = user.getUserId();
data.add(userid);// UserId
data.add("6");// Group Id
data.add("");// FromDate
data.add("");// TODate
data.add("Art");// Category
data.add("");// Location
db.close();
JSONArray testresult = null;
testresult = webServiceCaller.getServiceData(data);
TableRow tableRow = new TableRow(v.getContext());
if (testresult.length() > 0) {
for (int i = 0; i < testresult.length(); i++) {
String myname = "";
String eventName = "";
String fromDate = "";
String companyName = "";
String location = "";
try {
final JSONObject jo = (JSONObject) testresult.get(i);
myname = jo.getString("DisplayName");
eventName = jo.getString("EventName");
fromDate = jo.getString("FromDate");
companyName = jo.getString("CompanyName");
location = jo.getString("Location");
tableRow = new TableRow(v.getContext());
tableRow.setPadding(10, 10, 10, 10);
tableRow.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
TextView tv = new TextView(v.getContext());
tv.setTextColor(getResources().getColor(
R.color.black_overlay));
tableRow.addView(tv);
tv.setText(Html.fromHtml(myname + eventName + fromDate
+ companyName + location));
// tv.setOnClickListener(this);
tv.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {// Intent intent = new Intent();
Intent intent = new Intent(getActivity(),
TextActivity.class);
intent.putExtra("data", jo.toString());
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
return v;
}
return v;
}
public void onClick(View arg0) {
startActivity(new Intent(getActivity(), TextActivity.class));
}
}
最初に 10 個のデータをロードしたいだけですが、ユーザーが下にスクロールするとさらに 10 個ロードされ、11-20 を意味します。など....リスト、マップ、またはデータベースにデータを追加するのに最適なオプションです。ユーザーが最初のページに移動してプルダウンすると、リスト全体がクリアされ、最初からサービスが呼び出されます。Android 4.x の Gmail と同様です。
私はアンドロイドの初心者で、これを実装する方法がわかりませんか?