Контекст, переданный в конструкторе, показывает ошибку

Я новичок в разработке Android. Я пытался создать собственный адаптер массива для отображения чего-либо. но когда я передаю аргументы из основного действия, это показывает ошибку в контексте как требуемый контекст типа и предоставленная основная деятельность..

Это мой первый вопрос, друзья, помогите пожалуйста
основная деятельность.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ArrayList<text> arr= new ArrayList<>();
        arr.add(new text(4,5));
        textadapter extadapter=new textadapter(this,arr);
        ListView listView=findViewById(R.id.list_item);
        listView.setAdapter(extadapter);

    }
}

пользовательский адаптер массива

 public class textadapter extends ArrayAdapter {


    public textadapter(@NonNull Context context,ArrayList<text> arrayList) {
        super(context,0,arrayList);
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        if (convertView==null){
            convertView= LayoutInflater.from(getContext()).inflate(R.layout.list,parent,false);
        }
        text a= (text) getItem(position);
        TextView t=convertView.findViewById(R.id.text);
        TextView T1=convertView.findViewById(R.id.text2);
        t.setText(a.getText());
        T1.setText(a.getStext());
        return convertView;
    }
}
super(context,0,arrayList); уберите ноль из этой строки super(context,arrayList);
MRazaImtiaz 15.12.2020 13:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
297
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените getContext() в методе getView() в классе TextAdapter на контекст и создайте переменную с именем mContext, поскольку вы уже передаете контекст основного действия в конструктор адаптера.

public class textadapter extends ArrayAdapter {
    private Context context;

   public textadapter(@NonNull Context context,ArrayList<text> arrayList) {
      super(context,arrayList);
      this.context = context;
   }

  @NonNull
  @Override
  public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    if (convertView==null){
        convertView= LayoutInflater.from(context).inflate(R.layout.list,parent,false);
    }
    text a= (text) getItem(position);
    TextView t=convertView.findViewById(R.id.text);
    TextView T1=convertView.findViewById(R.id.text2);
    t.setText(a.getText());
    T1.setText(a.getStext());
    return convertView;
}

Другие вопросы по теме