संपादित संशोधित कहा जाता है लिखने के लिए, कोशिश:मैं EditText में नहीं लिख सकते हैं, यह गायब हो जाता है जब मैं कुछ अपने क्योंकि getView() जब मैं डेटा
मैं कारण है जिसमें पाया गया जब मैं कुछ संपादित करने की कोशिश करता हूं तो getView() को कॉल किया जाता है, इसलिए डेटा एडाप्टर से डेटा & लोड किया गया है मेरे संपादित परिवर्तन गायब हो जाते हैं।
संपादित करें:
मैं मनाया एक बात है, अगर वहाँ सूचीदृश्य में कुछ पंक्तियाँ हैं तो इसकी ठीक है, लेकिन अगर वहाँ कई पंक्तियों जो सूचीदृश्य दिखाई में नहीं दिखा सकते हैं स्क्रीन (स्क्रॉल बार अन्य रिकॉर्ड्स तक स्क्रॉल करने के लिए प्रतीत होता है), तो समस्या उत्पन्न होती है !!
मैं प्रोजेक्ट पर काम कर रहा हूं जहां हमने INLINE EDITING using ListView लागू किया है, यानी डेटाव्यू सूची के अंदर संपादित किया जा सकता है।
मैंने उस सूची दृश्य के प्रत्येक आइटम/पंक्ति के लिए एक XML को परिभाषित किया है। मैं ListView के साथ डेटा को बाध्य करने के लिए कस्टम डेटा एडाप्टर का उपयोग कर रहा हूं।
जब मैं पहली बार उस गतिविधि को लोड करता हूं तो सूची दृश्य लोड होता है, मैं डेटा & संपादित कर सकता हूं यह ठीक काम करता है। जब कुछ संपादित किया जाता है तो परिवर्तन SQLite डेटाबेस में सहेजे जाते हैं, मेरे पास इस उद्देश्य के लिए एक बटन है।
अब समस्या यह है कि डेटा को बहुत पहले समय के लिए सहेजा जाने के बाद & सूचीदृश्य फिर से लोड किया गया है, मैं अब डेटा संपादित नहीं कर सकता। जब मैं डेटा को संपादित करने का प्रयास करता हूं तो कीबोर्ड & दिखाई देता है तो स्वचालित रूप से गायब हो जाता है & एंटर किया गया डेटा भी गायब हो जाता है। कृपया स्क्रीन शॉट्स देखें।
क्या कोई इस मुद्दे को हल करने में मेरी सहायता कर सकता है?
अपने कस्टम एडाप्टर वर्ग:
public class QuestionAdapter extends ArrayAdapter<QuestionEntity> {
private ArrayList<QuestionEntity> items;
private Context CurrentContext;
private QuestionEntity CurrentItem;
private Cursor OptionsCursor;
public QuestionAdapter(Context context, ArrayList<QuestionEntity> items, Cursor curOptions)
{
super(context, R.layout.grid_item, items);
this.CurrentContext = context;
this.items = items;
this.OptionsCursor = curOptions;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
//verify that the items list is still valid since
//the list may have been cleared during an update
if ((items == null) || ((position + 1) > items.size()))
return convertView; //Can't extract item
CurrentItem = items.get(position);
if(convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(CurrentContext);
convertView = inflater.inflate(R.layout.grid_item, null);
}
if (convertView != null)
{
TextView txtQuestion = (TextView) convertView.findViewById(R.id.txtQuestion);
txtQuestion.setText(CurrentItem.getTitle());
Spinner cmbOptions = (Spinner)convertView.findViewById(R.id.cmbOptions);
/*
* Load the options from OptionsCursor
*/
LoadOptions(cmbOptions);
/*
* Attach onItemClick event with cmbOptions
* When the user change the option we will populate the comments based on the option
*/
cmbOptions.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
{
try
{
//If MyCondition is true show msg to user.
}
catch(Exception ex)
{
ex.toString();
}
}
});
}
return convertView;
}
private void LoadOptions(Spinner iacOptions)
{
//Load data in the spinner using the OptionsCursor
}
}
http://www.youtube.com/watch?v=wDBM6wVEO70 – Selvin