从previous列表视图打开一个新的ListView [英] open a new listview from previous listview

查看:99
本文介绍了从previous列表视图打开一个新的ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望你们帮助我..

我在这5行的列表视图。当我点击一排它打开另一个活动类。现在,我想是我想开一个新的列表视图,而不是在点击新的活动。共我有6列表视图。
我想开在previous列表视图的rightside我的新的ListView这样既列表视图是可见的。
我对听众的onclick编码

  listView.setOnItemClickListener(新OnItemClickListener(){
    @覆盖
    公共无效onItemClick(适配器视图<> paramAdapterView,查看paramView,INT paramInt,
            长paramLong){
        开关(位置)
{
   情况下0:意向newActivity0 =新意图(YourActivity.this,second.class);
            startActivity(newActivity0);
            打破;
   案例1:意向newActivity1 =新意图(YourActivity.this,third.class);
            startActivity(newActivity1);
            打破;
   案例2:意向newActivity2 =新意图(YourActivity.this,fourth.class);
            startActivity(newActivity2);
            打破;
   案例3:意向newActivity3 =新意图(YourActivity.this,fifth.class);
            startActivity(newActivity3);
            打破;
   案例4:意向newActivity4 =新意图(YourActivity.this,sixth.class);
            startActivity(newActivity4);
            打破;
}
    }
});

是我的期望输出,当我点击第二排它应该在它的rightside打开新的ListView 。
请帮我实现这一。先谢谢了。


解决方案

好吧,试试这个

首先,你必须做你的布局xml文件的一些变化。


  

布局:


 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:baselineAligned =假
机器人:方向=横向
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=MainActivity。>< ListView控件
    机器人:ID =@ + ID / ListView1的
    机器人:layout_width =0dp
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_weight =1
    机器人:背景=#fff123
     />
< ListView控件
    机器人:ID =@ + ID / listView2
    机器人:layout_width =0dp
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_weight =1
    机器人:背景=#ccc987
    机器人:知名度=水涨船高/><! - 添加其他列表,只要你喜欢 - >< / LinearLayout中>

和您的活动一样,其他的变化


  

活动


 进口android.app.Activity;
进口android.os.AsyncTask;
进口android.os.Bundle;
进口android.view.Menu;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.ListView;
进口android.widget.Toast;公共类MainActivity延伸活动{    ListView控件ListView1的;
    ListView的listView2;
    的String []项目= {项目1,项目2,3项,项目4,5项};
    串[] items_list_2 = {items_list_2,items_list_2,items_list_2,
            items_list_2,items_list_2,items_list_2,items_list_2,
            items_list_2,items_list_2,items_list_2,items_list_2};    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);        ListView1的=(的ListView)findViewById(R.id.listView1);
        listView1.setAdapter(新ArrayAdapter<串GT;(MainActivity.this,
                android.R.layout.simple_list_item_1,物品));
        listView1.setOnItemClickListener(新OnItemClickListener(){            @覆盖
            公共无效onItemClick(适配器视图<>为arg0,ARG1查看,
                    INT位置,长ARG3){
                // TODO自动生成方法存根
                开关(位置){
                情况下0:
                    新loadData()执行();
                    打破;                默认:
                    打破;
                }
            }
        });
    }    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        //充气菜单;如果是present这增加了项目操作栏。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }    私有类loadData扩展的AsyncTask<太虚,太虚,太虚> {        @覆盖
        保护无效doInBackground(虚空...... PARAMS){
            // TODO自动生成方法存根            返回null;
        }        @覆盖
        保护无效onPostExecute(虚空结果){
            // TODO自动生成方法存根
            super.onPostExecute(结果);            listView2 =(ListView控件)findViewById(R.id.listView2);
            listView2.setAdapter(新ArrayAdapter<串GT;(MainActivity.this,
                    android.R.layout.simple_list_item_1,items_list_2));
            listView2.setOnItemClickListener(新OnItemClickListener(){                @覆盖
                公共无效onItemClick(适配器视图<>为arg0,ARG1查看,
                        INT ARG2,长ARG3){
                    // TODO自动生成方法存根
                    Toast.makeText(MainActivity.thisitem_list_2:+ ARG2,
                            Toast.LENGTH_SHORT).show();
                }
            });            listView2.setVisibility(View.VISIBLE);
        }
    }
}

就是这样,我希望这可以帮助您

有关后退按钮pressed你必须覆盖onback pressed方法像

  @覆盖
公共无效onBack pressed(){
//隐藏第二个列表在这里
  listView2.setVisibility(View.GONE);
}

Hope you guys help me..

I have a listview with 5 rows in it. When i click a row it is opening another activity class. Now what i want is i would like to open a new listview instead of new activity on click. Totally i have 6 listviews. I would like to open my new listview on the rightside of the previous listview so that both the listviews will be visible. my coding for onclick listener is

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> paramAdapterView, View paramView, int paramInt,
            long paramLong) {
        switch( position )
{
   case 0:  Intent newActivity0 = new Intent(YourActivity.this, second.class);     
            startActivity(newActivity0);
            break;
   case 1:  Intent newActivity1 = new Intent(YourActivity.this, third.class);     
            startActivity(newActivity1);
            break;
   case 2:  Intent newActivity2 = new Intent(YourActivity.this, fourth.class);     
            startActivity(newActivity2);
            break;
   case 3:  Intent newActivity3 = new Intent(YourActivity.this, fifth.class);     
            startActivity(newActivity3);
            break;
   case 4:  Intent newActivity4 = new Intent(YourActivity.this, sixth.class);     
            startActivity(newActivity4);
            break;
}              
    }
});

is my expected output and when i click second row it should open new listview on the rightside of it. Please help me in achieving this. Thanks in advance.

解决方案

ok, try this

First you have to do some changes on your layout xml file

Layout :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#fff123"
     />


<ListView
    android:id="@+id/listView2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#ccc987"
    android:visibility="gone" />

<!-- add other list as you like -->

</LinearLayout>

And other changes on your Activity like that

Activity

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

    ListView listView1;
    ListView listView2;
    String[] items = { "item 1", "item 2", "item 3", "item 4", "item 5" };
    String[] items_list_2 = { "items_list_2", "items_list_2", "items_list_2",
            "items_list_2", "items_list_2", "items_list_2", "items_list_2",
            "items_list_2", "items_list_2", "items_list_2", "items_list_2" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView1 = (ListView) findViewById(R.id.listView1);
        listView1.setAdapter(new ArrayAdapter<String>(MainActivity.this,
                android.R.layout.simple_list_item_1, items));
        listView1.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {
                // TODO Auto-generated method stub
                switch (position) {
                case 0:
                    new loadData().execute();
                    break;

                default:
                    break;
                }
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    private class loadData extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);

            listView2 = (ListView) findViewById(R.id.listView2);
            listView2.setAdapter(new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_list_item_1, items_list_2));
            listView2.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "item_list_2 : " + arg2,
                            Toast.LENGTH_SHORT).show();
                }
            });

            listView2.setVisibility(View.VISIBLE);
        }
    }
}

that's it, I hope this help you

For back button pressed you have to override onbackPressed method like

@Override
public void onBackPressed() {
//hide the second list here
  listView2.setVisibility(View.GONE);
}

这篇关于从previous列表视图打开一个新的ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆