我有一个listView,在这个listView中我有2个textView,只需单击一下即可显示其内容并单击隐藏它们。我的卷轴有问题。当我用长按显示内容时,我向下滚动,在向上滚动后,我看到textView的内容消失了。如何在滚动后保留此内容?这是关于长按的代码:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
final Insegnamento insegnamento = insegnamenti.get(i);
TextView nomeDoc = (TextView) view.findViewById(R.id.nomeDocente);
nomeDoc.setText(R.string.nDocente);
String nDoc = nomeDoc.getText().toString() + " " + insegnamento.getNomeDoc();
nomeDoc.setText(nDoc);
nomeDoc.setTextColor(Color.argb(255,48,63,159));
TextView cogDoc = (TextView) view.findViewById(R.id.cognomeDocente);
cogDoc.setText(R.string.cDocente);
String cDoc = cogDoc.getText().toString() + " " + insegnamento.getCognomeDoc();
cogDoc.setText(cDoc);
cogDoc.setTextColor(Color.argb(255,48,63,159));
Toast.makeText(DocActivity.this,R.string.info_doc,Toast.LENGTH_SHORT).show();
return true;
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
final Insegnamento insegnamento = insegnamenti.get(i);
TextView nomeDoc = (TextView) view.findViewById(R.id.nomeDocente);
nomeDoc.setText("");
TextView cogDoc = (TextView) view.findViewById(R.id.cognomeDocente);
cogDoc.setText("");
}
});
这是关于listView的代码
protected void onPostExecute(String res){
if(res != null){
if(response_code==404){
Toast.makeText(getApplicationContext(), R.string.noIns, Toast.LENGTH_LONG).show();
Intent intent = new Intent(DocActivity.this, MainActivity.class);
startActivity(intent);
}else if(response_code==1000) {
Toast.makeText(getApplicationContext(), R.string.rete, Toast.LENGTH_LONG).show();
Intent intent = new Intent(DocActivity.this, MainActivity.class);
startActivity(intent);
}else{
try{
JSONArray jsonArray = new JSONArray(res);
for ( int i = 0; i < jsonArray.length(); i++){
JSONObject object = jsonArray.getJSONObject(i);
String cognomeDocente = object.getString("docenteCognome");
String nomeDocente = object.getString("docenteNome");
String insegnamento = object.getJSONObject("chiaveUdContestualizzata").getString("udDes");
String codiceInsegnamento = object.getJSONObject("chiaveUdContestualizzata").getString("udCod");
Insegnamento ins = new Insegnamento(nomeDocente,cognomeDocente,codiceInsegnamento,insegnamento);
insegnamenti.add(ins);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
ListAdapter adapter;
adapter = new ListAdapter(DocActivity.this, insegnamenti);
listView.setAdapter(adapter);
listView.setVisibility(View.VISIBLE);
谢谢
答案 0 :(得分:0)
在您的Insegnamento对象模型中添加一个字段,例如:
boolean isUnlocked;
然后当用户在长按时解锁textview时更新模型:
insegnamenti.get(position).setIsUnlocked(true);
updateListViewdata(insegnamenti);// to update your listview
你的updateListViewdata方法应如下所示:
public void updateListViewData(Insegnamenti updatedInsegnamenti){
this.insegnamenti = updatedInsegnamenti;
notifydatasetchanged();
}
然后检查getview()中的isUnlock标志以显示更新的视图。 希望它有所帮助。