Вот и возникла проблема, что уже мозг взрывает.
Activity по умолчанию создает ListView в который загружаются картинки из сети. Вот код адаптера который создает список и загружает объекты (main дам в конце)
Код: Выделить всё
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private String[] data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, String[] d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.item, null);
TextView text=(TextView)vi.findViewById(R.id.text);;
ImageView image=(ImageView)vi.findViewById(R.id.image);
text.setText(data[position]);
imageLoader.DisplayImage(data[position], image);
return vi;
}
}Код: Выделить всё
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class Adapter extends BaseAdapter {
private Activity activity;
private String[] data;
private static LayoutInflater inflater = null;
public Adapter(Activity a, String[] d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null)
view = inflater.inflate(R.layout.item, null);
TextView text = (TextView) view.findViewById(R.id.text);
ImageView image = (ImageView) view.findViewById(R.drawable.stub);
text.setText(data[position]);
image.setImageResource(R.drawable.stub);
return view;
}
}Код: Выделить всё
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity {
ListView list;
Adapter adapter2;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list=(ListView)findViewById(R.id.list);
Button b=(Button)findViewById(R.id.button1);
Button d=(Button)findViewById(R.id.button2);
adapter2=new Adapter(this, mStrings);
list.setAdapter(adapter2);
}
@Override
public void onDestroy()
{
list.setAdapter(null);
super.onDestroy();
}
public void onClickStart (View arg0) {
adapter=new LazyAdapter(this, mStrings);
list.setAdapter(adapter);
}
public void onClickCache(View arg0) {
adapter.imageLoader.clearCache();
adapter.notifyDataSetChanged();
}
private String[] mStrings={// куча URL-ов... }09-19 13:33:23.230: E/AndroidRuntime(776): FATAL EXCEPTION: main
09-19 13:33:23.230: E/AndroidRuntime(776): java.lang.NullPointerException
09-19 13:33:23.230: E/AndroidRuntime(776): at com.example3.loaderr.Adapter.getView(Adapter.java:46)
09-19 13:33:23.230: E/AndroidRuntime(776): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
09-19 13:33:23.230: E/AndroidRuntime(776): at android.widget.ListView.makeAndAddView(ListView.java:1745)
09-19 13:33:23.230: E/AndroidRuntime(776): at android.widget.ListView.fillDown(ListView.java:670)
Но если убрать строчки 22, 23 в main то приложение работает, но опять же без списка "заглушки". Если сможете, помогите? или укажите где копать
Спасибо за внимание.