Android将数组从活动传递到customadapter类

时间:2011-02-28 18:48:03

标签: android adapter

在MainAcitivty.java中,我使用项目填充Arraylist。我需要在customadapter类中使用这些项目,因为我需要它们在textview中设置某些行的颜色。

我有一个动态数组:storage [],其大小在此过程中设置:

 storage = new int[db];

此数组具有以下项目,例如:35,56,67

arraylist“myArr3”具有相同的项目,但元素的类型是字符串。

这是myArr3 arraylist的定义:

  ArrayList<String> myArr3 = new ArrayList<String>();

我正在寻找一个解决方案来管理其他类中的这些项,无论它是整数类型数组还是字符串类型arraylist。

在MyCustomBaseAdapter2.java中,我设置了适配器的布局:

package com.bfarago.nevnap;

import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class MyCustomBaseAdapter2 extends BaseAdapter {
     private static ArrayList<SearchResults> searchArrayList;

 private LayoutInflater mInflater;

 public MyCustomBaseAdapter2(Context context, ArrayList<SearchResults> results) {
  searchArrayList = results;
  mInflater = LayoutInflater.from(context);
 }

public MyCustomBaseAdapter2(OnClickListener onClickListener,
        ArrayList<SearchResults> searchResults) {
    // TODO Auto-generated constructor stub
}

public int getCount() {
  return searchArrayList.size();
 }

 public Object getItem(int position) {
  return searchArrayList.get(position);
 }

 public long getItemId(int position) {
  return position;
 }

 public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder holder;
  if (convertView == null) {
   convertView = mInflater.inflate(R.layout.row2, null);
   holder = new ViewHolder();


       holder.txtName = (TextView) convertView.findViewById(R.id.left);
       holder.txtCityState = (TextView) convertView.findViewById(R.id.right);


   convertView.setTag(holder);
  } else {
   holder = (ViewHolder) convertView.getTag();
  }

  holder.txtName.setText(searchArrayList.get(position).getName());
  holder.txtCityState.setText(searchArrayList.get(position).getCityState());



  return convertView;
 }

static class ViewHolder {
  TextView txtName;
  TextView txtCityState;

 }
}

2 个答案:

答案 0 :(得分:0)

您可以将整数数组更改为字符串ArrayList,然后使用ArrayList

中的Adapter

您可以将整数数组更改为字符串数组,以便

 int storage [] = new int[db];
 int stringstorage[] = new String[db];
 for (int i = 0; i < db; i++) {
 stringstorage[i] =storage[i] ;
}

现在将stringstorage更改为ArrayList

  List<String> l = Arrays.asList(stringstorage);
  ArrayList<String> list = new ArrayList<String>(l);

现在根据需要使用list

希望这会对你有所帮助。

答案 1 :(得分:0)

解决方案是使用Intent将数组从一个活动传递到另一个活动。

答案可以在this

中找到