Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在片段中实现无限滚动视图_Android_Android View - Fatal编程技术网

Android 如何在片段中实现无限滚动视图

Android 如何在片段中实现无限滚动视图,android,android-view,Android,Android View,我的服务在获取数据时遇到了一个小问题 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 Catego

我的服务在获取数据时遇到了一个小问题

         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类将进行扩展

提前谢谢

编辑: 感谢您的好评, 这是我的片段类

                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));
}
公共类ArtFragment扩展了片段实现OnClickListener{
列表数据=新的ArrayList();
用户用户;//=新用户();
字符串userid=“”;
字符串groupid=“”;
字符串fromDate=“”;
字符串toDate=“”;
字符串类别=”;
字符串位置=”;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图v=充气机。充气(R.layout.music_布局,容器,假);
LinearLayout mLayout=(LinearLayout)v
.findviewbyd(R.id.类别/线性布局);
mLayout.setBackgroundResource(R.drawable.music_full);
TableLayout TableLayout=(TableLayout)v.findViewById(R.id.maintable);
tableLayout.removeallview();
user=新用户();
WebServiceCaller WebServiceCaller=新的WebServiceCaller();
DatabaseHandler db=新的DatabaseHandler(getActivity());
user=db.getUser();
userid=user.getUserId();
data.add(userid);//userid
data.add(“6”);//组Id
data.add(“”;//FromDate
data.add(“”;//TODate
data.add(“Art”);//类别
data.add(“”;//位置
db.close();
JSONArray testresult=null;
testresult=webServiceCaller.getServiceData(数据);
TableRow TableRow=新的TableRow(v.getContext());
if(testresult.length()>0){
for(int i=0;i
}

我只想加载前10个数据,如果用户向下滚动,它会加载10个以上的数据,这意味着11-20个。以此类推……并在列表、地图或数据库中添加数据,无论是哪种最佳选择。若用户转到第一页并下拉,那个么整个列表将被清除,并从头开始呼叫服务。就像安卓4.x中的Gmail一样


我是android新手,不知道如何实现这一点?

你能试着更具体地回答这个问题吗?也许再加一些画。我不确定你的问题是否正确。你在找清爽的咖啡吗?!如果您使用的是
列表视图
,您可以通过在适配器中检查显示的位置来完成此操作,然后在接近列表末尾时使用回拨下载其他数据。我不确定您在这里问什么。但是,如果要在片段中使用ListView来显示数据,这种方法会起作用:谢谢大家的回复,正如你们看到的,首先定义pagesize=10的代码给了我10条记录。我的想法是存储要列出的前10项,并在滚动结束时设置pageindex=2。但我不知道如何实现这一点。在数据中,我发送所有参数,因为我也可以发送pageindex。