Я пытаюсь добавить флажок в настраиваемом виде списка, но он дает ошибку NullPointerException.Пользовательский просмотр списка с флажком в android
Это мой MainActivity класс
public class Classes extends Activity {
ImageView imageViewNewClass;
ListView mListView;
String[] stg1;
List<String[]> names2 = null;
DataManipulatorClass dataManipulator;
CustomAdapter customAdapter;
public Classes classes = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.classes);
imageViewNewClass = (ImageView) findViewById(R.id.newclass);
mListView = (ListView) findViewById(R.id.displaydata);
Resources res =getResources();
classes = this;
customAdapter=new CustomAdapter(classes, stg1,res);
mListView.setAdapter(customAdapter);
imageViewNewClass.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Classes.this, Class_Create.class);
startActivity(intent);
}
});
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View item,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Listview item clicked", Toast.LENGTH_LONG).show();
}
});
dataManipulator = new DataManipulatorClass(this);
names2 = dataManipulator.selectAll();
stg1 = new String[names2.size()];
int x = 0;
String stg;
for (String[] name : names2) {
stg = "Class Name : " + name[1];
stg1[x] = stg;
x++;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, stg1);
mListView.setAdapter(new ArrayAdapter<String>(this, R.layout.check,
stg1));
mListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
И это мой класс CustomAdapter
public class CustomAdapter extends BaseAdapter {
/*********** Declare Used Variables *********/
private Activity activity;
private String[] data;
private static LayoutInflater inflater = null;
public Resources res;
int i = 0;
/************* CustomAdapter Constructor *****************/
public CustomAdapter(Activity a, String[] stg1, Resources resLocal) {
/********** Take passed values **********/
activity = a;
data = stg1;
res = resLocal;
/*********** Layout inflator to call external xml layout() ***********/
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
/******** What is the size of Passed Arraylist Size ************/
public int getCount() {
if (data.length <= 0)
return 1;
return data.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public CheckBox checkBox;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.check, null);
holder = new ViewHolder();
holder.checkBox = (CheckBox) vi.findViewById(R.id.checkBox1);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
return vi;
}
public void onClick(View v) {
Log.v("CustomAdapter", "=====Row button clicked=====");
}
}
Другое то это я уже более 2 активности, один для создания базы данных и хранения значения в нем и других это передача данных.
Что я пытаюсь сделать, это когда пользователь нажимает кнопку в классе Classes, открывается новый вид и запрашивает ввод данных, я храню эти данные в базе данных, а затем пытаюсь извлечь эти данные в класс классов. поэтому я просмотрел список, отображающий данные.
Теперь, когда у меня есть список, я также хочу показать флажок, и когда пользователь отметит любой флажок, откроется новое действие и покажет соответствующий контент этого флажка.
Но когда я пытаюсь реализовать флажок со списком, я получаю ошибку.
Вот мой журнал кот http://i.share.pho.to/e06cc7b5_o.png
Спасибо заранее ...
Кажется, вы забыли инициализировать адаптер перед его использованием –