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