填充列表视图以及文本和OnItemClick意图与新布局有关,其中包含另一个ListView以及基于选择的文本



我需要一个包含城市的列表视图以及其面积计数(IE( 班加罗尔(10(德里(5(孟买(15(一一ost。 在每个城市上关注我需要另一个列表视图,其中包含这些区域以及该区域的商店数量。(即,如果我单击班加罗尔,它将显示10个区域的列表视图以及每个区域中的商店数量。...(ex((区域1(10(区域2(20(区域3(25(likethis ..

帮助我使用要显示的示例代码(listView和text( OnItemClick在另一个(listView和text(上。 带有括号的文字((示例::班加罗尔(10(

我已附加了我的代码:

textListViewActivity ::

public class TextListViewActivity extends Activity implements
        OnItemClickListener {
    int chn_len,mum_len,cal_len;
    String[]  city;
    String[] descriptions;
    ListView listView1;
    List<RowItem> rowItems1;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        city = getResources().getStringArray(R.array.city_array);
        chn_len=getResources().getStringArray(R.array.area_chennai).length;
        mum_len=getResources().getStringArray(R.array.area_mumbai).length;
        cal_len=getResources().getStringArray(R.array.area_calcutta).length;
         descriptions = new String[] {String.valueOf(chn_len),String.valueOf(mum_len),String.valueOf(cal_len)};

        rowItems1 = new ArrayList<RowItem>();
        for (int i = 0; i < city.length; i++) {
            RowItem item = new RowItem(city[i], descriptions[i]);
            rowItems1.add(item);
        }
        listView1 = (ListView) findViewById(R.id.list);
        CustomListViewAdapter adapter1 = new CustomListViewAdapter(this,
                R.layout.list_item, rowItems1);
        listView1.setAdapter(adapter1);
        listView1.setOnItemClickListener(this);
    }
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
    }
}

CustomListViewAdapter ::

public class CustomListViewAdapter extends ArrayAdapter<RowItem> {
    Context context;
    public CustomListViewAdapter(Context context, int resourceId,
                                 List<RowItem> items) {
        super(context, resourceId, items);
        this.context = context;
    }
    /*private view holder class*/
    private class ViewHolder {
        //ImageView imageView;
        TextView txtTitle1;
        TextView txtDesc1;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        RowItem rowItem = getItem(position);
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_item, null);
            holder = new ViewHolder();
            holder.txtDesc1 = (TextView) convertView.findViewById(R.id.desc);
            holder.txtTitle1 = (TextView) convertView.findViewById(R.id.title);
           // holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
        holder.txtDesc1.setText(rowItem.getDesc());
        holder.txtTitle1.setText(rowItem.getTitle());
       // holder.imageView.setImageResource(rowItem.getImageId());
        return convertView;
    }
}

RowItem:

public class RowItem {
   // private int imageId;
    private String title;
    private String desc;
    public RowItem(String title, String desc) {
      //  this.imageId = imageId;
        this.title = title;
        this.desc = desc;
    }
  /*  public int getImageId() {
        return imageId;
    }
    public void setImageId(int imageId) {
        this.imageId = imageId;
    }*/
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc1) {
        this.desc = desc1;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title1) {
        this.title = title;
    }
    @Override
    public String toString() {
        return title + "n" + desc;
    }

}

textListViewActivity ::

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
            Bundle bundle = new Bundle();
            bundle.putSerializable("object", rowItems1.get(position));
            Intent intent = new Intent(TextListViewActivity .this,TextListViewDetailActivity.class);
            intent.putExtra("bundle",bundle);
            startActivity(intent);
    }

textListViewDetailActivity ::

从意图中获取城市数据,如下所示。

    Bundle bundle = getIntent().getBundleExtra("bundle");
    if (bundle != null) {
        RowItem model = (RowItem) bundle.getSerializable("object");
    }

在模型中,您将拥有城市数据。使用它来获取区域数据并在ListView中填充它。

RowItem:

public class RowItem implements Serializable  {
....
}

只需添加可序列化的实现序列化。

最新更新