Как изменить определенный ImageView в ListView - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь изменить определенное значение ImageView (информация), когда я нажимаю на него из ListView, чтобы было очевидно, что этот элемент является наиболее актуальным, с которым я пытался справиться, но, поскольку он сделан с viewHolder, яне могу найти решение с моим собственным, когда я пытаюсь с viewHolder.info.setOnClickItem мое приложение разрушает

Вот мой ListView в MainActivity

listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            DataModel dataModel= dataModels.get(position);

            Snackbar.make(view, dataModel.getName()+"\n"+dataModel.getType()+" API: "+dataModel.getVersion_number(), Snackbar.LENGTH_LONG)
                    .setAction("No action", null).show();
            i= Integer.parseInt(dataModel.getVersion_number());
            isPaused = false;

            StartNewSong();

        }
    });

А вот класс CustomAdapter

public class CustomAdapter extends ArrayAdapter<DataModel> implements View.OnClickListener{
private MainActivity mainActivity;

private ArrayList<DataModel> dataSet;
Context mContext;
// View lookup cache
private static class ViewHolder {
    TextView txtName;
    TextView txtType;
    TextView txtVersion;
    ImageView info;


}



public CustomAdapter(ArrayList<DataModel> data, Context context) {
    super(context, R.layout.row_item, data);
    this.dataSet = data;
    this.mContext=context;

}


@Override
public void onClick(View v) {


    int position=(Integer) v.getTag();
    Object object= getItem(position);
    DataModel dataModel=(DataModel)object;




    switch (v.getId())
    {

        case R.id.item_info:
            Snackbar.make(v, "Release date " , Snackbar.LENGTH_LONG)
                    .setAction("No action", null).show();
            break;


    }


}

private int lastPosition = -1;

public View getView(int position, View convertView, ViewGroup parent) {
    // Get the data item for this position
    DataModel dataModel = getItem(position);
    // Check if an existing view is being reused, otherwise inflate the view
    ViewHolder viewHolder; // view lookup cache stored in tag

    final View result;

    if (convertView == null) {


        viewHolder = new ViewHolder();
        LayoutInflater inflater = LayoutInflater.from(getContext());
        convertView = inflater.inflate(R.layout.row_item, parent, false);


        viewHolder.txtName = (TextView) convertView.findViewById(R.id.name);

        viewHolder.txtType = (TextView) convertView.findViewById(R.id.type);

        viewHolder.info = (ImageView) convertView.findViewById(R.id.item_info);

        result=convertView;

        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
        result=convertView;
    }

    Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
    result.startAnimation(animation);
    lastPosition = position;


    viewHolder.txtName.setText(dataModel.getName());
    viewHolder.txtType.setText(dataModel.getType());

    viewHolder.info.setOnClickListener(this);
    viewHolder.info.setTag(position);
    // Return the completed view to render on screen
    return convertView;
}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...