我无法执行我的代码 我正在尝试获取数据库活动的列表。
这里有很多研究,没有答案对我有帮助
我的适配器
public class AtividadesAdapter extends RecyclerView.Adapter<AtividadesAdapter.AtividadesViewHolder> {
private Context mCtx;
private List<Atividades> atividadesList;
public AtividadesAdapter(Context mCtx, List<Atividades> atividadesList) {
this.mCtx = mCtx;
this.atividadesList = atividadesList;
}
@Override
public AtividadesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.atividades_lista, null);
return new AtividadesViewHolder(view);
}
@Override
public void onBindViewHolder(AtividadesViewHolder holder, int position) {
Atividades atividades = atividadesList.get(position);
holder.textViewAtividade.setText(atividades.getAtividade());
holder.textViewData.setText(String.valueOf(atividades.getDataPrevista()));
holder.textViewHora.setText(String.valueOf(atividades.getHora()));
holder.textViewDestinatarios.setText(atividades.getDestinatarios());
}
@Override
public int getItemCount() {
return atividadesList.size();
}
class AtividadesViewHolder extends RecyclerView.ViewHolder {
TextView textViewAtividade, textViewData, textViewHora, textViewDestinatarios;
public AtividadesViewHolder(View itemView) {
super(itemView);
textViewAtividade = itemView.findViewById(R.id.textViewAtividade);
textViewData = itemView.findViewById(R.id.textViewData);
textViewHora = itemView.findViewById(R.id.textViewHora);
textViewDestinatarios = itemView.findViewById(R.id.textViewDestinatarios);
}
}
}
我的活动
public class AtividadesActivity extends AppCompatActivity {
private static final String URL_ATIVIDADES = "";
List<Atividades> atividadesList = new ArrayList<>();
public RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.atividadesrecyclerview);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
loadAtividades();
}
private void loadAtividades() {
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_ATIVIDADES,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray array = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
JSONObject a = array.getJSONObject(i);
Log.d("Valores", a.getString("Atividade"));
atividadesList.add(new Atividades(
a.getInt("idAtividade"),
a.getString("Atividade"),
java.sql.Date.valueOf(a.getString("dataPrevista")),
java.sql.Time.valueOf(a.getString("hora")),
a.getString("Destinatarios"),
a.getString("Local")
));
}
AtividadesAdapter mAdapter = new AtividadesAdapter(AtividadesActivity.this, atividadesList);
recyclerView.setAdapter(mAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
Volley.newRequestQueue(this).add(stringRequest);
}
}
每次我尝试启动应用程序时,都会出现此错误。 我已经更改了xml文件以使其与此处提供的示例匹配,但仍然没有成功。
答案 0 :(得分:1)
根据您的问题和代码,我认为这会对您有所帮助。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.atividadesrecyclerview);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
AtividadesAdapter mAdapter = new AtividadesAdapter(getApplicationContext, atividadesList);
recyclerView.setAdapter(mAdapter);
loadAtividades();
}
答案 1 :(得分:1)
添加到适配器:
public AtividadesAdapter(Context mCtx) {
this.mCtx = mCtx;
}
public void setItems(@NonNull final List<Atividades> items) {
if (atividadesList != null) {
atividadesList.clear();
} else {
atividadesList = new ArrayList<>();
}
atividadesList.addAll(items);
}
活动的onCreate应该如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.atividadesrecyclerview);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
mAdapter = new AtividadesAdapter(AtividadesActivity.this);
recyclerView.setAdapter(mAdapter);
loadAtividades();
}
在loadAtividades()中调用setItems:
mAdapter.setItems(atividadesList);
答案 2 :(得分:0)
请附加父母和其他人
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
return new AtividadesViewHolder(LayoutInflater.from(mCtx).inflate(R.layout.atividades_lista, parent, false));
}