Ошибка: "адаптер не может быть применен к (package_name, java.utill.list<package_name>)" В android studio java
Я знаю, что могут быть некоторые подобные вопросы, но это совершенно отличается от них. У меня есть проект android studio, в котором у меня есть RecyclerView с CardView. Когда я определяю адаптер в MainActivity.java, это дает мне ошибку:
Адаптер не может быть применен к (package_name, java.utill.Список<package_name>)
Вот основной код деятельности:
package com.example.app; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import org.json.JSONArray; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; public class className extends AppCompatActivity { RecyclerView viewer; package_adapter adapter; List<item> itemList = new ArrayList <> (); @Override protected void onCreate( Bundle savedInstanceState ) { super.onCreate (savedInstanceState); setContentView (R.layout.layout); viewer = findViewById (R.id.viewer); viewer.setHasFixedSize (true); viewer.setLayoutManager (new LinearLayoutManager(this)); itemLoader (); } public void itemLoader(){ String data = ""; String name = ""; String creator = ""; int likes; try { URL url = new URL("https://www.unicas-official.com/questions.json"); HttpURLConnection htc = (HttpURLConnection) url.openConnection(); InputStream inputStream = htc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader (inputStream)); String raw = ""; while (raw != null){ raw = br.readLine(); data = data+raw; } JSONArray jsonArray = new JSONArray (data); JSONObject jsonObject=jsonArray.getJSONObject (0); name=name + jsonObject.get ("name"); creator=creator + jsonObject.get ("creator"); likes= Integer.parseInt (jsonObject.get ("likes").toString ()); itemList.add ( new item ( "https://notin", name, creator, likes ) ); adapter = new package_adapter (className.this, itemList); viewer.setAdapter (adapter); }catch (Exception e){ } } }
Код класса адаптера:
package com.example.hometutor; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import org.w3c.dom.Text; import java.util.List; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; public class package_adapter extends RecyclerView.Adapter<package_adapter.packageholder> { private Context context; private List <item> itemList; @NonNull @Override public packageHolder onCreateViewHolder( @NonNull ViewGroup parent , int viewType ) { LayoutInflater inflater = LayoutInflater.from (context); View view = inflater.inflate (R.layout.item, null); return new packageHolder (view); } @Override public void onBindViewHolder( @NonNull packageHolder holder , int position ) { item packs = itemList.get (position); holder.package_name.setText (packs.getName()); holder.package_creator.setText (packs.getCreator_name ()); holder.package_got_likes_count.setText (String.valueOf (packs.getLikes ())); } @Override public int getItemCount() { return itemList.size (); } class packageHolder extends RecyclerView.ViewHolder{ ImageView package_ico; TextView package_name, package_creator, package_got_likes_count; packageHolder( @NonNull View itemView ) { super (itemView); package_ico = itemView.findViewById (R.id.package_imgage); package_name = itemView.findViewById (R.id.package_name); package_creator = itemView.findViewById (R.id.creator); package_name = itemView.findViewById (R.id.likes); } } }
Я так расстроен этой ошибкой. Пожалуйста, помогите мне!! Заранее спасибо
Что я уже пробовал:
У меня есть все, что я могу. Я попытался добавить конструктор, но он не вернул мне результат
Unicas
Извините за плохое форматирование, потому что я новичок на этом сайте
Richard MacCutchan
Пожалуйста, отредактируйте свой вопрос и добавьте теги <pre> вокруг вашего кода. Вы можете легко добавить их с помощью код кнопка над окном редактирования.
David Crow
- Я знаю, что они могут быть. схожий вопросы к этому но это так совершенно разный от них."
Не может быть и того, и другого.
"Когда я определяю адаптер в MainActivity.java, это дает мне ошибку:
Адаптер не может быть применен к (package_name, java.utill.Список<package_name>)"
Какая линия производит эту ошибку? Является ли это ошибкой во время компиляции или исключением, возникающим во время выполнения?
Намеренно ли это делает ваш файл JSON нет содержать имя, создатель, или нравится поля?
Возможно, вы захотите рассмотреть вопрос о перемещении вашего itemLoader()
код в отдельный поток, чтобы избежать NetworkOnMainThreadException
быть брошенным.