java—在Android Eclipse中将光标值添加到ArrayList中

java—在Android Eclipse中将光标值添加到ArrayList中,java,android,eclipse,sqlite,arraylist,Java,Android,Eclipse,Sqlite,Arraylist,我是android开发的新手。我正在为我的学校作业创建一个维生素顾问应用程序。我正在将光标值存储到此ArrayList中,遇到以下错误: 类型ArrayList中的add(int,VitaminInfo)方法不适用于参数(int,String)。 我的dbAdapter来自另一个类,该类包含所有sql数据库执行。除了使用results.add,我还可以使用其他什么方法?非常感谢。这是我的代码 VitaminInfo.java DisplayInfoActivityAdapter.java 公共

我是android开发的新手。我正在为我的学校作业创建一个维生素顾问应用程序。我正在将光标值存储到此ArrayList中,遇到以下错误:

类型ArrayList中的add(int,VitaminInfo)方法不适用于参数(int,String)。
我的dbAdapter来自另一个类,该类包含所有sql数据库执行。除了使用results.add,我还可以使用其他什么方法?非常感谢。这是我的代码

VitaminInfo.java DisplayInfoActivityAdapter.java
公共类DisplayInfoActivityAdapter扩展了BaseAdapter
{
私有静态数组列表vitaminDetailsArrayList;
私有整数[]imgid=
{
R.drawable.vb1,
R.drawable.vb2,
R.drawable.vb3,
R.drawable.vb6,
R.drawable.fc,
R.drawable.vb12,
R.drawable.vbc,
R.drawable.va,
R.drawable.vd,
R.drawable.ve,
R.drawable.vk
};
私人充气机;
public DisplayInfoActivityAdapter(上下文、ArrayList结果)
{
vitaminDetailsArrayList=结果;
l_Inflater=从(上下文)开始的布局更平坦;
}
public int getCount()
{
返回vitaminDetailsArrayList.size();
}
公共对象getItem(int位置)
{
返回vitaminDetailsArrayList.get(位置);
}
公共长getItemId(int位置)
{
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图)
{
视窗座;
if(convertView==null)
{
convertView=l_充气机。充气(R.layout.info_rowlayout,null);
holder=新的ViewHolder();
holder.vitaminImage=(ImageView)convertView.findViewById(R.id.vitaminImage);
holder.vitaminName=(TextView)convertView.findViewById(R.id.vitaminName);
holder.vitaminFunction=(TextView)convertView.findViewById(R.id.vitaminFunction);
holder.vitaminSources=(TextView)convertView.findViewById(R.id.vitaminSources);
holder.vitaminCategory=(TextView)convertView.findViewById(R.id.vitaminCategory);
convertView.setTag(支架);
} 
其他的
{
holder=(ViewHolder)convertView.getTag();
}
holder.vitaminName.setText(vitaminDetailsArrayList.get(position.getvitains());
holder.vitaminFunction.setText(vitaminDetailsArrayList.get(position.getFunctions());
holder.vitaminSources.setText(vitaminDetailsArrayList.get(position.getSources());
holder.vitaminCategory.setText(vitaminDetailsArrayList.get(position.getCategory());
holder.vitaminImage.setImageResource(imgid[vitaminDetailsArrayList.get(position.getImages()-1]);
返回视图;
}
静态类视窗夹
{
TextView vitaminName;
TextView维生素功能;
TextView vitaminSources;
图像视图;
TextView维生素类;
}
}
DisplayInfoActivity.java
公共类DisplayInfoActivity扩展活动{
ListView tablelayout_=null;
阵列适配器;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.info\u布局);
RelativeLayout视图=(RelativeLayout)findViewById(R.id.inforelativelayout1);
view.setBackgroundColor(Color.CYAN);
ArrayList image_details=GetSearchResults();
最终ListView lv1=(ListView)findViewById(R.id.contentlist);
lv1.setAdapter(新的DisplayInfoActivityAdapter(此,图像_详细信息));
}
//------对于“查看”按钮------
私有ArrayList GetSearchResults()
{
ArrayList结果=新建ArrayList();
VitaminInfo VitaminInfo;
DatabaseHandler dbAdaptor=新的DatabaseHandler(getApplicationContext());
游标=空;
试一试{
dbAdaptor.open();
cursor=dbAdaptor.getAllInfo();
cursor.moveToFirst();
做{
int id=cursor.getInt(0);
String=cursor.getString(1);
字符串函数=cursor.getString(2);
字符串源=cursor.getString(3);
字符串image=cursor.getString(4);
字符串类别=cursor.getString(5);
结果:添加(1,维生素);
结果:增加(2,功能);
结果:增加(3,来源);
结果:添加(4,图像);
结果:增加(5,类别);
}
while(cursor.moveToNext());
}
捕获(例外e){
Log.d(“联系人经理”,e.getMessage());
}
最后{
如果(光标!=null)
cursor.close();
if(dbAdaptor!=null)
dbAdaptor.close();
}
返回结果;
}//点心
}    

您不能将不扩展
VitaminInfo
的类型的对象添加到
ArrayList
<代码>字符串不扩展
VitaminInfo
。您必须创建一个
VitaminInfo
对象,并将该对象添加到列表中:

int imageAsInt = // convert your image to int here or get it as int in the first place
results.add(new VitaminInfo(id, vitamin, function, sources, imageAsInt, category));
public class DisplayInfoActivityAdapter extends BaseAdapter
{
    private static ArrayList<VitaminInfo> vitaminDetailsArrayList;

    private Integer[] imgid = 
    {
       R.drawable.vb1,
       R.drawable.vb2,
       R.drawable.vb3,
       R.drawable.vb6,
       R.drawable.fc,
       R.drawable.vb12,
       R.drawable.vbc,
       R.drawable.va,
       R.drawable.vd,
       R.drawable.ve,
       R.drawable.vk
    };

    private LayoutInflater l_Inflater;

    public DisplayInfoActivityAdapter(Context context, ArrayList<VitaminInfo> results) 
    {
        vitaminDetailsArrayList = results;
        l_Inflater = LayoutInflater.from(context);
     }

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

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

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

     public View getView(int position, View convertView, ViewGroup parent) 
     {
         ViewHolder holder;
         if (convertView == null) 
         {
             convertView = l_Inflater.inflate(R.layout.info_rowlayout, null);
             holder = new ViewHolder();
             holder.vitaminImage = (ImageView) convertView.findViewById(R.id.vitaminImage);
             holder.vitaminName = (TextView) convertView.findViewById(R.id.vitaminName);
             holder.vitaminFunction = (TextView) convertView.findViewById(R.id.vitaminfunction);
             holder.vitaminSources = (TextView) convertView.findViewById(R.id.vitaminsources);
             holder.vitaminCategory = (TextView) convertView.findViewById(R.id.vitamincategory);
             convertView.setTag(holder);
         } 

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

         holder.vitaminName.setText(vitaminDetailsArrayList.get(position).getVitamins());
       holder.vitaminFunction.setText(vitaminDetailsArrayList.get(position).getFunctions());
         holder.vitaminSources.setText(vitaminDetailsArrayList.get(position).getSources());
         holder.vitaminCategory.setText(vitaminDetailsArrayList.get(position).getCategory());
         holder.vitaminImage.setImageResource(imgid[vitaminDetailsArrayList.get(position).getImages() - 1]);

         return convertView;
     }

     static class ViewHolder 
     {
         TextView vitaminName;
         TextView vitaminFunction;
         TextView vitaminSources;
         ImageView vitaminImage;
         TextView vitaminCategory;
     }
}
public class DisplayInfoActivity extends Activity {

    ListView tablelayout_Vitamins = null;
    ArrayAdapter<String> listAdapter; 

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.info_layout);

        RelativeLayout view = (RelativeLayout) findViewById(R.id.inforelativelayout1);
        view.setBackgroundColor( Color.CYAN );

        ArrayList<VitaminInfo> image_details = GetSearchResults();
        final ListView lv1 = (ListView) findViewById(R.id.contentlist);
        lv1.setAdapter(new DisplayInfoActivityAdapter(this, image_details));

    }

    // ------ for "View" Button ------- 
    private ArrayList<VitaminInfo> GetSearchResults()
    {
        ArrayList<VitaminInfo> results = new ArrayList<VitaminInfo>();
        VitaminInfo vitaminInfo;

        DatabaseHandler dbAdaptor = new DatabaseHandler(getApplicationContext());

        Cursor cursor = null;

        try{
            dbAdaptor.open();

            cursor = dbAdaptor.getAllInfo();
            cursor.moveToFirst();

            do{
                int  id = cursor.getInt(0);
                String vitamin = cursor.getString(1);
                String function = cursor.getString(2);
                String sources = cursor.getString(3);
                String image = cursor.getString(4);
                String category = cursor.getString(5);

                results.add(1, vitamin);
                results.add(2, function);
                results.add(3, sources);
                results.add(4, image);
                results.add(5, category);
            }
            while (cursor.moveToNext());
        }
        catch (Exception e){
            Log.d("Contact Manager", e.getMessage());
        }
        finally{
            if (cursor != null)
                cursor.close();

            if (dbAdaptor != null)
                dbAdaptor.close();
        }
        return results;

    }//refreshTable

}    
int imageAsInt = // convert your image to int here or get it as int in the first place
results.add(new VitaminInfo(id, vitamin, function, sources, imageAsInt, category));