2016-01-14 2 views
-2

Я новичок в Android. У меня есть элемент управления ListView, можно прокручивать элемент в ListView. В Проводнике i отобразится три меню «Меню 1, Меню 2, Меню 3». При выборе конкретного меню я должен установить видимость ImageView в списке для VISIBLE.Как установить видимость ImageView для определенного элемента в ListView

Если когда-нибудь я нажимаю на меню приложения прекратить отображение "К сожалению, приложение остановилось"

Вот мой код

private int Selected = -1; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list); 

    lview = (SwipeMenuListView) findViewById(R.id.lstPatients); 
    lviewAdapter = new ListViewAdapter(this, Name, Id , Time); 
    lview.setAdapter(lviewAdapter); 


    ImageView SelectedIndication = (ImageView) findViewById(R.id.imgSelectedItem); 

//Step 1 
//Creates a Swipe Menu. 

lview.setMenuCreator(creator); 

    // step 2. listener item click event 

lview.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { 

      switch (index) { 
       case 0: 
        if(Selected == -1) 
        { 
         if(position == CalledToken) 
         { 

          Selected = -1; 
          SelectedIndication .setVisibility(View.INVISIBLE); 
         } 
         else 
         { 
          Selected = position; 
          SelectedIndication .setVisibility(View.VISIBLE); 
         } 
        } 
        else 
        { 
        } 
        break; 
       case 1: 


        break; 
       case 2: 


        break; 
      } 
      return false; 
     } 
    }); 
} 

ListViewAdapter.java

Посмотреть GetView() метод

public View getView(int position, View convertView, ViewGroup parent) 
    {  ViewHolder holder; 
     LayoutInflater inflater = context.getLayoutInflater(); 

     if (convertView == null) 
     { 
      convertView = inflater.inflate(R.layout.listrow, null); 
      holder = new ViewHolder(); 
      holder.Name = (TextView) convertView.findViewById(R.id.Name); 
      holder.Id = (TextView) convertView.findViewById(R.id.Id); 
      holder.Time = (TextView) convertView.findViewById(R.id.Time); 
      holder.SelectedIndication = (ImageView) convertView.findViewById(R.id.imgSelectedItem); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     holder.Name.setText(Name[position]); 
     holder.Id.setText(Id[position]); 
     holder.Time.setText(Time[position]); 
     holder.CalledIndication.setVisibility(View.INVISIBLE); 
     return convertView; 
    } 

Нужна помощь в сортировке. Заранее спасибо.

+0

отправить свой logcat –

+0

Где находится ваше изображение? ?? –

+0

Где я должен позвонить код, указанный в примере 0:. Это должно быть сделано в классе ListViewAdapter – user3501749

ответ

-1
if (convertView == null) 
    { 
     convertView = inflater.inflate(R.layout.listrow, null); 
     ... 
     convertView.setTag(holder) 
    } 

Вы пропустили спасая держатель, когда convertView! = NULL, convertView.getTag) вернет нуль (.

Получить полный стек из логарифма, он точно скажет вам, откуда идет NullPointerEx.

+3

Только ответы на код не особенно полезны. Объясните предоставленный вами код и сообщите, как ваш код отвечает на вопрос OP. – DuncanKinnear

Смежные вопросы