【发布时间】:2014-05-10 05:34:14
【问题描述】:
我在尝试将我的 arrayAdapter 的构造函数用于 listView 时遇到错误。当我这样称呼它时:
ListArrayAdapter adapters = new ListArrayAdapter(this, R.layout.list_view_row_item, foodList);
我得到错误(在 Eclipse 中):
the constructor ListArrayAdapter(Context, int, ArrayList<ListItem>) is undefined.
这是arrayAdapter的代码:
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import android.app.Activity;
import android.app.LauncherActivity.ListItem;
import android.content.Context;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ProgressBar;
import android.widget.TextView;
public class ListArrayAdapter extends ArrayAdapter<ListItem> {
Context mContext;
int layoutResourceId;
ListItem data[] = null;
private ProgressBar progressBar;
private int progressStatus = 0;
private TextView textView;
private Handler handler = new Handler();
ArrayList<ListItem> foodList = new ArrayList<ListItem>();
public ListArrayAdapter(Context mContext, int layoutResourceId, ArrayList<ListItem> foodList) {
super(mContext, layoutResourceId, foodList);
this.layoutResourceId = layoutResourceId;
this.mContext = mContext;
this.foodList = foodList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
// inflate the layout
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
convertView = inflater.inflate(layoutResourceId, parent, false);
}
return convertView;
}
我的程序的主要部分:
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
import com.app.fridgelist.*;
public class MainScreen extends Activity {
private static Calendar d = Calendar.getInstance();
private static Date kurrentTime = d.getTime();
public int listItems;
public static Context mainScreen;
public ArrayList<ListItem> foodList = new ArrayList<ListItem>();
private static ListItem newFood1 = new ListItem(0, "Pasta", 99, (int) (kurrentTime.getTime()));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
if (savedInstanceState == null) {
//getFragmentManager().beginTransaction()
//.add(R.id.container, new PlaceholderFragment())
//.commit();
}
mainScreen = this;
foodList.add(newFood1);
listItems = 1;
ListArrayAdapter adapters = new ListArrayAdapter(getBaseContext(), R.layout.list_view_row_item, foodList);
ListView yourListView = (ListView) findViewById(R.id.listOne);
//yourListView.setAdapter(adapters);
//yourListView.setOnItemClickListener(new OnItemClickListener() {
}
@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_screen, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main_screen, container, false);
return rootView;
}
}
}
【问题讨论】:
-
请发布错误
-
我发布的错误是 eclipse 给我的错误
-
你在哪里实例化你的适配器?检查你传递给适配器构造函数的上下文
-
我从具有 listView 的主屏幕传递它
-
请在您的主屏幕中发布部分代码以实例化您的适配器,这些代码看起来不错。
标签: java android eclipse listview