Android 从以前的listview打开新的listview

Android 从以前的listview打开新的listview,android,android-listview,Android,Android Listview,希望你们能帮我 我有一个5行的列表视图。当我单击一行时,它正在打开另一个活动类。现在我想要的是打开一个新的listview,而不是单击新的活动。我总共有6个列表视图。 我想在上一个listview的右侧打开我的新listview,以便两个listview都可见。 我对onclick侦听器的编码是 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick

希望你们能帮我

我有一个5行的列表视图。当我单击一行时,它正在打开另一个活动类。现在我想要的是打开一个新的listview,而不是单击新的活动。我总共有6个列表视图。 我想在上一个listview的右侧打开我的新listview,以便两个listview都可见。 我对onclick侦听器的编码是

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;
}              
    }
});
listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView-paramAdapterView、View-paramView、int-paramInt、,
长(长){
开关(位置)
{
案例0:Intent newActivity0=新意图(YourActivity.this,second.class);
startActivity(newActivity0);
打破
案例1:Intent newActivity1=新意图(YourActivity.this,third.class);
startActivity(新活动1);
打破
案例2:Intent newActivity2=新意图(YourActivity.this,fourth.class);
startActivity(新活动2);
打破
案例3:Intent newActivity3=新的Intent(YourActivity.this,fifth.class);
startActivity(新活动3);
打破
案例4:Intent newActivity4=新的Intent(你的activity.this,第六课堂);
startActivity(新活动4);
打破
}              
}
});
是我的预期输出,当我单击第二行时,它应该会在右侧打开新的listview。
请帮助我实现这一目标。提前感谢。

您应该使用fragment来完成此操作。在你的碎片活动中将有两个碎片。一个片段将像您一样包含5个元素的listview。另一个片段将包含一个listView。当您单击5个元素中的一个时,您必须更新保存该元素的适当listview的另一个片段。也许安卓平板电脑的设置应用程序就是一个很好的例子

请参阅此链接,可能会对您有所帮助。你会在这里得到你需要的

好的,试试这个

首先,您必须对布局xml文件进行一些更改

布局:


你能发布一张你想做什么的截图吗do@AT_AB我的布局和我的问题现在清楚了吗?(全部来自3个白痴电影:))当你点击第二个列表视图时,你预计会发生什么@在_AB,我不希望在第二个列表视图中有任何活动。它只是一个被动的列表视图,显示特定行的详细信息。它正在工作。你能告诉我当按下后退按钮时如何隐藏第二个listview吗?请确定,我将编辑我的回复,如果这对您有帮助,将其作为其他人的回复(已解决)。我想实现两件简单的事情1)按backbutton应隐藏新的listview 2)新的listview应在我按单击的行附近打开,例如:如果我从那里按第三行,我的新listview应打开(如图所示)请指导我,我已经编辑了我的文章,关于第二点,你必须在listView2上实现这一点。setOnItemClickListener listener,如果你想加载新的arrayList,并在你的列表适配器上调用notifyDataSetChanged,这是感谢你的努力。。还有一个疑问。。我想在backpress事件中添加6个ListView,但当我加载多个视图时,这是shoe=wing空指针异常。如果我正好加载1,工作正常。你能告诉我如何在背压中加载多个视图吗。。
<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>
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);
        }
    }
}
@Override
public void onBackPressed() {
//hide the second list here
  listView2.setVisibility(View.GONE);
}