【问题标题】:Swipe listview in android在android中滑动列表视图
【发布时间】:2014-01-10 13:12:41
【问题描述】:

如何滑动 1-2 列表视图右侧 2-3 列表视图右侧以及 1-2 左侧 2-3 左侧

我是 android 新手,我想向右滑动 1-2 列表视图 2-3 右侧列表视图以及 1-2 左侧 2-3 左侧,

我怎样才能做到这一点?

提前致谢。

这是我的代码

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.inspire);

    Context contex;

    activity = this;

    rowItems = fetchTwitterPublicTimeline();
    rowItems1 = fetchTwitterPublicTimeline1();
    rowItems2 = fetchTwitterPublicTimeline2();

    btn1 = (Button) findViewById(R.id.button1);
    btn2 = (Button) findViewById(R.id.button2);
    btn3 = (Button) findViewById(R.id.button3);

    TextView txtDesc = (TextView) findViewById(R.id.desc);
    TextView txtTitle = (TextView) findViewById(R.id.title);
    ImageView imageView = (ImageView) findViewById(R.id.icon);

    final ListView listView = (ListView) findViewById(R.id.listview);
    adapter = new InspireAdapter(this, R.layout.row, rowItems);
    listView.setAdapter(adapter);

    OnItemClickListener listener = new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                final int position, long id) {

        }
    };

    listView.setOnItemClickListener(listener);

    final ListView listView1 = (ListView) findViewById(R.id.listview1);
    adapter1 = new InspireAdapter1(this, R.layout.row1, rowItems1);

    // listView1.setAdapter(adapter1);

    OnItemClickListener listener1 = new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

        }
    };
    listView1.setOnItemClickListener(listener1);

    final ListView listView2 = (ListView) findViewById(R.id.listview2);
    adapter2 = new InspireAdapter2(this, R.layout.row2, rowItems2);

    // listView2.setAdapter(adapter2);

    OnItemClickListener listener2 = new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

        }
    };
    listView2.setOnItemClickListener(listener2);

    btn1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            listView1.setVisibility(View.GONE);
            listView.setVisibility(View.VISIBLE);
            listView2.setVisibility(View.GONE);

            btn1.setTextColor(Color.BLACK);
            btn2.setTextColor(Color.WHITE);
            btn3.setTextColor(Color.WHITE);

        }
    });

    btn2.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            listView.setVisibility(View.GONE);
            listView1.setVisibility(View.VISIBLE);
            listView2.setVisibility(View.GONE);

            listView1.setAdapter(adapter1);

            btn2.setTextColor(Color.BLACK);
            btn1.setTextColor(Color.WHITE);
            btn3.setTextColor(Color.WHITE);
        }
    });

    btn3.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            listView2.setVisibility(View.VISIBLE);
            listView1.setVisibility(View.GONE);
            listView.setVisibility(View.GONE);

            listView2.setAdapter(adapter2);

            btn3.setTextColor(Color.BLACK);
            btn1.setTextColor(Color.WHITE);
            btn2.setTextColor(Color.WHITE);

        }
    });
}

public ArrayList<rowitem> fetchTwitterPublicTimeline() {
    ArrayList<rowitem> listItems = new ArrayList<rowitem>();

    try {
        URL twitter = new URL(
                "http://jaihoon.com/app-admin/API/getInspire.php?appKey=86fb269d190d2c85f6e0468ceca42a20&type=poem");
        URLConnection tc = twitter.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                tc.getInputStream()));

        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = in.readLine()) != null) {
            sb.append(line + "\n");
        }
        line = sb.toString();
        JSONObject ja = new JSONObject(line);
        JSONArray ja1 = ja.getJSONArray("AllInspires");

        for (int i = 0; i < ja1.length(); i++) {
            JSONObject jo = (JSONObject) ja1.get(i);
            rowitem r = new rowitem();

            String inspiresum = null;
            String inspititle = null;
            String inspiimage = null;
            String inspitype = null;
            String inspitext = null;

            // inspitype = ja1.getJSONObject(i).getString("inspiretype");
            // r.setInspiretype(inspitype);

            inspiresum = ja1.getJSONObject(i).getString("inspiresummary");
            r.setInspiresummary(inspiresum);

            inspititle = ja1.getJSONObject(i).getString("inspiretitle");
            r.setInspiretitle(inspititle);

            inspiimage = ja1.getJSONObject(i).getString("inspireimage");
            r.setInspireimage(inspiimage);

            inspitext = ja1.getJSONObject(i).getString("inspiretext");
            r.setInspiretext(inspitext);

            listItems.add(r);

        }

    } catch (MalformedURLException e) {
        Log.e("dhrumil", "MalformedURLException" + e.getMessage());
    } catch (IOException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "IOException" + e.getMessage()); // e.printStackTrace();
    } catch (JSONException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "JSONException " + e.getMessage());
    }
    return listItems;

}

public ArrayList<rowitem> fetchTwitterPublicTimeline1() {
    ArrayList<rowitem> listItems = new ArrayList<rowitem>();

    try {
        URL twitter = new URL(
                "http://jaihoon.com/app-admin/API/getInspire.php?appKey=86fb269d190d2c85f6e0468ceca42a20&type=essay");
        URLConnection tc = twitter.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                tc.getInputStream()));

        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = in.readLine()) != null) {
            sb.append(line + "\n");
        }
        line = sb.toString();
        JSONObject ja = new JSONObject(line);
        JSONArray ja1 = ja.getJSONArray("AllInspires");

        for (int i = 0; i < ja1.length(); i++) {
            JSONObject jo = (JSONObject) ja1.get(i);
            rowitem r = new rowitem();
            String inspiresum = null;
            String inspititle = null;
            String inspiimage = null;

            inspiresum = ja1.getJSONObject(i).getString("inspiresummary");
            r.setInspiresummary(inspiresum);

            inspititle = ja1.getJSONObject(i).getString("inspiretitle");
            r.setInspiretitle(inspititle);

            inspiimage = ja1.getJSONObject(i).getString("inspireimage");
            r.setInspireimage(inspiimage);

            listItems.add(r);

        }

    } catch (MalformedURLException e) {
        Log.e("dhrumil", "MalformedURLException" + e.getMessage());
    } catch (IOException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "IOException" + e.getMessage()); // e.printStackTrace();
    } catch (JSONException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "JSONException " + e.getMessage());
    }
    return listItems;

}

public ArrayList<rowitem> fetchTwitterPublicTimeline2() {
    ArrayList<rowitem> listItems = new ArrayList<rowitem>();

    try {
        URL twitter = new URL(
                "http://jaihoon.com/app-admin/API/getInspire.php?appKey=86fb269d190d2c85f6e0468ceca42a20&type=tweet");
        URLConnection tc = twitter.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                tc.getInputStream()));

        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = in.readLine()) != null) {
            sb.append(line + "\n");
        }
        line = sb.toString();
        JSONObject ja = new JSONObject(line);
        JSONArray ja1 = ja.getJSONArray("AllInspires");

        for (int i = 0; i < ja1.length(); i++) {
            JSONObject jo = (JSONObject) ja1.get(i);
            rowitem r = new rowitem();
            String inspiresum = null;
            String inspititle = null;
            String inspiimage = null;

            inspiresum = ja1.getJSONObject(i).getString("inspiresummary");
            r.setInspiresummary(inspiresum);

            inspititle = ja1.getJSONObject(i).getString("inspiretitle");
            r.setInspiretitle(inspititle);

            inspiimage = ja1.getJSONObject(i).getString("inspireimage");
            r.setInspireimage(inspiimage);

            listItems.add(r);

        }

    } catch (MalformedURLException e) {
        Log.e("dhrumil", "MalformedURLException" + e.getMessage());
    } catch (IOException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "IOException" + e.getMessage()); // e.printStackTrace();
    } catch (JSONException e) { // TODO Auto-generated catch block
        Log.e("dhrumil", "JSONException " + e.getMessage());
    }
    return listItems;

}

}

【问题讨论】:

  • 一切皆有可能......但Android有自己的设计模式......你应该遵循它们。
  • 我在列表视图中实现了投掷手势我完成了向右滑动 1-2 列表视图但仍然没有滑动 2-3 向右滑动列表视图
  • @PankajKumar 我认为 android 在其设计模式中也包含滑动屏幕。所以要冷静它不是开箱即用的要求。 Android 支持并提供一种通过滑动创建屏幕的方法
  • @Sameer 我的评论是针对附加屏幕的...我没有说滑动不在 Android 中。我说的对吗?

标签: android listview swipe


【解决方案1】:

https://github.com/jfeinstein10/SlidingMenu,检查一下。演示项目也可以从 google play 下载。

【讨论】:

  • 我在列表视图中实现了投掷手势我完成了向右滑动 1-2 列表视图但仍然没有滑动 2-3 向右滑动列表视图
【解决方案2】:

这很容易。在 android 最新版本中,Android 提供了一种创建项目滑动屏幕的方法。查看我们如何创建滑动导航及其向后兼容

【讨论】:

  • 我在列表视图中实现了投掷手势我完成了向右滑动 1-2 列表视图但仍然没有向右滑动 2-3 滑动列表视图..sammer
  • 不要使用甩动手势..它只会增加复杂性..使用 ViewPager 和这个 ListView。看我的链接
  • 我很困惑如何使用 viewpager
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多