Android CustomlistAdapter中的共享首选项
我需要将值存储在customlistadapter的SharedReference中。当我单击listview时,Edittext警报框将打开。在该警报框中,我们可以给出数量值。如果我单击“确定”警告框中的按钮,数量值应保存在共享首选项中。在我的情况下,当我单击listview时,应用程序正在崩溃。请帮助我找到解决方案。提前感谢Android CustomlistAdapter中的共享首选项,android,sharedpreferences,Android,Sharedpreferences,我需要将值存储在customlistadapter的SharedReference中。当我单击listview时,Edittext警报框将打开。在该警报框中,我们可以给出数量值。如果我单击“确定”警告框中的按钮,数量值应保存在共享首选项中。在我的情况下,当我单击listview时,应用程序正在崩溃。请帮助我找到解决方案。提前感谢 public CustomListAdapter(Activity activity, ArrayList<Movie> movieItems1,int G
public CustomListAdapter(Activity activity, ArrayList<Movie> movieItems1,int Groupid,Context context)
{
this.activity = activity;
this.movieItems = movieItems1;
this.Groupid=Groupid;
this.c=context;
//this.arraylist = new ArrayList<Movie>();
this.arraylist=movieItems1;
}
@Override
public int getCount() {
return movieItems.size();
}
@Override
public Object getItem(int location) {
return movieItems.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.list_row, null);
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
NetworkImageView thumbNail = (NetworkImageView) convertView
.findViewById(R.id.thumbnail);
TextView title = (TextView) convertView.findViewById(R.id.title);
TextView rating = (TextView) convertView.findViewById(R.id.rating);
// TextView genre = (TextView) convertView.findViewById(R.id.genre);
// TextView year = (TextView)
// convertView.findViewById(R.id.releaseYear);
TextView quantityTextView = (TextView) convertView.findViewById(R.id.qty);
/*quantityTextView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
handleQuntityClickEvent(position);
}
});*/
MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id)
{
handleQuntityClickEvent(position,Groupid);
}
});
// getting movie data for the row
Movie m = movieItems.get(position);
// thumbnail image
thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
title.setText(m.getTitle());
quantityTextView.setText("" + m.getQuantity());
rating.setText(m.getGenre().get(0) + " "+ m.getProductscale() + " " +"Rs."+ String.valueOf(m.getGenre().get(1)));
String genreStr = "";
for (String str : m.getGenre()) {
genreStr += str + ", ";
}
genreStr = genreStr.length() > 0 ? genreStr.substring(0,
genreStr.length() - 2) : genreStr;
// genre.setText(genreStr);
// release year
// year.setText(String.valueOf(m.getYear()));
return convertView;
}
/**
* launch a edi
*
* @param position
*/
protected void handleQuntityClickEvent(int position, final int Groupid) {
// TODO launch a dialog with edittext. The view has OK and Cancel
// button. if the OK button pressed then
this.mPosition = position;
Builder alertDialog = new AlertDialog.Builder(activity);
final EditText editText = new EditText(activity);
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
editText.setHint("Quantity");
editText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
alertDialog.setView(editText);// set a editext view here
alertDialog.setTitle("Add Quantity");
sharedpreferences = c.getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
final Editor editor = sharedpreferences.edit();
alertDialog.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
//SharedPreferences pref = mContext.getSharedPreferences("MyPref", Context.MODE_PRIVATE);
editor.putInt("Userid", Groupid);
editor.commit();
handleOkButtonPressed(editText);
dialog.dismiss();
}
});
alertDialog.setNegativeButton("Cancel", null);
alertDialog.show();
}
而不是这条线
MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {
使用
并将此代码块移动到getView()内部同时添加Logcat详细信息为什么要在
getView
方法内部的listview中添加setOnItemClickListener
?Logcat添加了@Kat Hat此错误是由于某个空值。在主活动中调用setOnItemClickListener,而不是在getView()内部调用setOnItemClickListener您还可以在SharedReferences中保存position、Groupid以在main中获取值activity@VibinRejiY:可能alertDialog.setNegativeButton(“取消”,null)代码>导致问题的行
MainActivity.listView.setOnItemClickListener(new OnItemClickListener() {
convertView.setOnClickListener(){
handleQuntityClickEvent(position,Groupid);
}