2017-08-23 86 views
1

我想刷新我的ListView項目,其中項目來自服務器。我使用notifyDataSetChanged();,但它不適用於我的代碼。我需要當我按下buttonListView應刷新。我想刷新我的ListView項目,其中項目是動態的

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View listViewItem = inflater.inflate(R.layout.declined_list_view_layout, null, true); 

    notifyDataSetChanged(); 

    TextView textViewId = (TextView) listViewItem.findViewById(R.id.textViewId); 
    TextView textViewName = (TextView) listViewItem.findViewById(R.id.textViewName); 

    textViewId.setText(ids[position]); 
    textViewName.setText(ages[position]+" years"+" , "+heights[position]+" cm"+", "+communities[position]+" : "+castes[position]+" , "+educations[position]+" , "+occupations[position]+" , "+incomes[position]+", "+locations[position]); 

    Button btnSort =(Button) listViewItem.findViewById(R.id.btnshort); 
    btnSort.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     Toast.makeText(getContext(),"shortlist",Toast.LENGTH_LONG).show(); 
     } 
    }); 

    Button btnChat =(Button) listViewItem.findViewById(R.id.btnchat); 
    btnChat.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     Intent i = new Intent(v.getContext(), BlankActivity.class); 
      Toast.makeText(getContext(), ids[position], 
      Toast.LENGTH_LONG).show(); 
      i.putExtra("id", ids[position]); 
      v.getContext().startActivity(i); 

     } 
    }); 

    return listViewItem; 
} 
+0

add notifyDataSetChanged()你在哪裏得到數據表服務器 – Anil

回答

3

notifyDataSetChanged()

通知所附的觀察者的基礎數據已 改變任何視圖反映了數據集應刷新本身。

我需要在我按下後退按鈕ListView控件應該是刷新

@Override 
public void onResume() { 
    super.onResume(); 
    adapterOBJ.notifyDataSetChanged(); 

} 

onResume() - 當活動進入已恢復狀態,它涉及到 前景,然後系統調用onResume()回調。此 是應用程序與用戶交互的狀態。

+1

它正在爲我工​​作謝謝@Amiya –

+0

@VikasGodiyal很高興聽到。 –

3

不要在getView中調用notify,因爲這將針對列表中的每個項目呈現。相反,通常應該這樣做,一旦你從服務器獲取整個數據來刷新一次。

如果您想在刷新按鈕時按下按鈕,請在Activity生命週期方法中添加notifyDataSetChangedMethod。您可以將其添加到onResume以及。

添加此內部onResume應該爲你做的伎倆。

adapter.notifyDataSetChanged(); 

我希望這可以幫助你。 :)

+0

我用onResume方法和它的工作謝謝 –

+1

沒問題。很高興爲你工作。快樂的編碼。 :) –

+0

@NikitPrabhu好精心製作。 –