Запуск Activity из адаптера

404
01 сентября 2017, 21:52

Написал такой адаптер

public class TAdapter extends ArrayAdapter<Trenirovka> {
private LayoutInflater inflater;
private int layout;
private ArrayList<Trenirovka> trenirovkaList;
MainActivity m = new MainActivity();
public TAdapter(Context context, int resource, ArrayList<Trenirovka> trenirovka) {
    super(context, resource, trenirovka);
    this.trenirovkaList = trenirovka;
    this.layout = resource;
    this.inflater = LayoutInflater.from(context);
}
public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder viewHolder;
    if (convertView == null) {
        convertView = inflater.inflate(this.layout, parent, false);
        viewHolder = new ViewHolder(convertView);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    final Trenirovka trenirovka = trenirovkaList.get(position);
    viewHolder.nameView.setText("Id:"+trenirovka.getID() + " Name: " + trenirovka.getName());
    viewHolder.parView.setText(formatValue(trenirovka.getPar_one(), trenirovka.getPar_two(), trenirovka.getPar_three(), trenirovka.getPar_fore()));

    viewHolder.loadbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent bf = new Intent();
            bf.putExtra("id", trenirovka.getID());
            bf.putExtra("name", trenirovka.getName());
            bf.putExtra("par1", trenirovka.getPar_one());
            bf.putExtra("par2", trenirovka.getPar_two());
            bf.putExtra("par3", trenirovka.getPar_three());
            bf.putExtra("par4", trenirovka.getPar_fore());

            Intent a = new Intent(TAdapter.this.getContext(), AcLoad.class);
            new Activity().startActivity(a);
        }
    });
    viewHolder.addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        }
    });
    return convertView;
}
private String formatValue(int par_one, int par_two, int par_three, int par_ofore) {
    return String.valueOf(par_one) + ", " + String.valueOf(par_two) + ", " + String.valueOf(par_three) + ", " + String.valueOf(par_ofore);
}
private class ViewHolder {
    final Button addButton, loadbutton;
    final TextView nameView, parView;
    ViewHolder(View view) {
        addButton = (Button) view.findViewById(R.id.addButton);
        loadbutton = (Button) view.findViewById(R.id.loadbutton);
        nameView = (TextView) view.findViewById(R.id.nameView);
        parView = (TextView) view.findViewById(R.id.parView);
    }
}

Но при нажатии на кнопку данный код вызывает ошибку а именно последняя сточка с запуском активности , подскажите пожалуйста что не так

viewHolder.loadbutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent bf = new Intent();
        bf.putExtra("id", trenirovka.getID());
        bf.putExtra("name", trenirovka.getName());
        bf.putExtra("par1", trenirovka.getPar_one());
        bf.putExtra("par2", trenirovka.getPar_two());
        bf.putExtra("par3", trenirovka.getPar_three());
        bf.putExtra("par4", trenirovka.getPar_fore());

        Intent a = new Intent(TAdapter.this.getContext(), AcLoad.class);
        new Activity().startActivity(a);
    }
});

Вот такая ошибка TAdapter$1.onClick(TAdapter.java:65)

Answer 1

Cтартовать активити надо так же из-под контекста. К примеру

Intent a = new Intent(TAdapter.this.getContext(), AcLoad.class);
viewHolder.loadbutton.getContext().startActivity(a);

Вот это не код ошибки, а только место падения

TAdapter$1.onClick(TAdapter.java:65)
READ ALSO
выводятся одни нули, результат сверху

выводятся одни нули, результат сверху

Реализовать функциональность абстрактного класса AbstractArrayOfPoints, приведенного в примере, через использование двумерного массива вещественных...

313
Теряются относительные пути

Теряются относительные пути

Есть учебный JEE MVC проектОдин контроллер- сервлет

303
AdMob Реклама не работает корректно

AdMob Реклама не работает корректно

LogcatEvent LogДобавляя тестовый ad unit ID(с офицсайта AdMob for Androids)(ca-app-pub-3940256099942544/6300978111), всё работает отлично, и тип эта реклама поздравляет меня, что...

382