问题描述
|
我的平板电脑布局有两个列表视图,一个右,一个左。当我单击一个组(左侧列表的项目)时,组将显示在另一个列表(groupsList)中。现在,当我单击该特定区域中的组列表时,需要显示其他布局。
那么如何进行呢?
下面是我的代码:
package com.list.viewer;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class HealthPlan extends Activity
{
private String[] list1 = { \"Group\",\"Opportunities\",\"Contacts\",\"Activities\",\"Quotes\"};
private String[] list2 = { \"\",\"\",\"\"};
private Integer[] imgid = {R.drawable.accounts,R.drawable.s,R.drawable.contacts,R.drawable.activities,R.drawable.s};
static final Integer[] aimgid = {R.drawable.activities_60,R.drawable.activities_60,R.drawable.activities_60};
static final String[] a1 = new String[] {\"1-96XO56\",\"1-96XOPL\",\"1-96Xomr\",\"1-96XOKM\"};
static final String[] a2 = new String[] {\"Open\",\"Closed\",\"Cancelled\",\"Open\"};
static final Integer[] cimgid = {R.drawable.contacts_60,R.drawable.contacts_60,R.drawable.contacts_60};
static final String[] c1 = new String[] {\"Denning\",\"Guido\",\"Castro\",\"Heath\"};
static final String[] c2 = new String[] {\"[email protected]\",\"[email protected]\"};
static final Integer[] gimgid = {R.drawable.accounts_60,R.drawable.accounts_60,R.drawable.accounts_60};
static final String[] g1 = new String[] {\"La Maison Blanche Bakery\",\"(NSCC) FRONTIER @R_319_4045@I\",\"american Diamond Tool,Inc\",\"OCH Test 20100831\"};
static final String[] g2 = new String[] {\"PRVS - Private Sector\",\"PBLS - Public Sector\",\"PRVS - Private Sector\",\"NATL - National Account\"};
static final Integer[] qimgid = {R.drawable.health,R.drawable.health,R.drawable.health};
static final String[] q1 = new String[] {\"1-7LY9JK\",\"1-7GRMRO\",\"1-7FCJBR\",\"1-7GRMP4\"};
static final String[] q2 = new String[] {\"In-Progress\",\"Created\",\"Install In Progress\",\"Installed\"};
static final Integer[] oimgid = {R.drawable.health,R.drawable.health};
static final String[] o1 = new String[] {\"Long Term Care\",\"HMO Blue Choice Value\",\"Drug\",\"Long Term Care\"};
static final String[] o2 = new String[] {\"New Business - Exclusive\",\"Win Exclusive\",\"New Business - Nonexclusive\",\"Change Product / Service\"};
private ListView lister1;
private ListView lister2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lister1 = (ListView) findViewById(R.id.ListView1);
lister2 = (ListView) findViewById(R.id.ListView2);
ItemsAdapter itemsAdapter = new ItemsAdapter(HealthPlan.this,R.layout.row,list1,list2,imgid);
lister1.setAdapter(itemsAdapter);
lister2.setAdapter(new ItemsAdapter(HealthPlan.this,g1,g2,gimgid));
lister2.setonItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0,View arg1,int position,long arg3)
{
}
});
lister1.setonItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0,long arg3)
{
String[] lister = null;
String[] lister1 = null;
Integer[] image = null;
switch (position)
{
case 0:
lister = g1;
lister1 = g2;
image = gimgid;
break;
case 1:
lister = o1;
lister1 = o2;
image = oimgid;
break;
case 2:
lister = c1;
lister1 = c2;
image = cimgid;
break;
case 3:
lister = a1;
lister1 = a2;
image = aimgid;
break;
case 4:
lister = q1;
lister1 = q2;
image = qimgid;
break;
default:
lister = g1;
lister1 = g2;
image = gimgid;
}
lister2.setAdapter(new ItemsAdapter(HealthPlan.this,lister,lister1,image));
}
});
}
private class ItemsAdapter extends BaseAdapter
{
String[] items;
String[] items1;
Integer[] images;
public ItemsAdapter(Context context,int textViewResourceId,String[] items,String[] items1,Integer[] images)
{
this.items = items;
this.items1 = items1;
this.images=images;
}
@Override
public View getView(final int position,View convertView,ViewGroup parent)
{
TextView mDescription;
TextView mDescription1;
View view = convertView;
ImageView image;
if (view == null)
{
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.row,null);
}
image = (ImageView) view.findViewById(R.id.icon);
mDescription = (TextView) view.findViewById(R.id.tt1);
mDescription1 = (TextView) view.findViewById(R.id.tt2);
mDescription.setText(items[position]);
mDescription1.setText(items1[position]);
image.setimageResource(images[position]);
return view;
}
public int getCount()
{
return items.length;
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
}
}
解决方法
就显示第三个列表而言,实际上很容易做到,并且适合您的模式。在您的布局文件中,定义第三个列表,但是将其可见性设置为“消失”,从而使其不再可见。现在,当您在第二个列表中单击时,可以设置第三个列表的可见性以使其可见:
Lister.setVisibility (View.VISIBLE) ;