错误:尝试调用虚拟方法';void android.widget.ListView.setAdapter
我正在使用改型从服务器获取JSON,现在我想使用listView来显示它,但显然我被卡住了。我对安卓系统比较陌生,所以我所做的可能是完全错误的。 我试图创建一个ListView并将POJO对象提供给适配器,但是适配器似乎正在崩溃,导致了一个空点异常。任何帮助都将不胜感激 舱单:错误:尝试调用虚拟方法';void android.widget.ListView.setAdapter,android,listview,adapter,retrofit,Android,Listview,Adapter,Retrofit,我正在使用改型从服务器获取JSON,现在我想使用listView来显示它,但显然我被卡住了。我对安卓系统比较陌生,所以我所做的可能是完全错误的。 我试图创建一个ListView并将POJO对象提供给适配器,但是适配器似乎正在崩溃,导致了一个空点异常。任何帮助都将不胜感激 舱单: 同时发布R.layout.activity_主代码 我怀疑您提供的listview Id不正确 您必须在activity\u main 将您的活动\u main.xml替换为以下代码: <?xml versi
同时发布R.layout.activity_主代码我怀疑您提供的listview Id不正确 您必须在
activity\u main
将您的活动\u main.xml
替换为以下代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="100dp"
android:minHeight="100dp"
tools:context="com.nmc.viewbeem.MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listview">
</ListView>
</RelativeLayout>
尝试将ListView=(ListView)放入findViewById(R.id.ListView);在发出请求之前,然后在响应时创建适配器并将其设置为listviewHey Adnan感谢您的回复,我在activity_main上发布了布局未更改的内容。我这样做有问题吗?如果您觉得这有帮助,请接受答案。正如Adnan所说,您需要在当前膨胀的布局(即activity_main.xml)中定义ListView。因此,请确保列表视图是在该xml中定义的。是的,只需将ListView xml包含到activity_main.xml中即可
package com.nmc.viewbeem;
import android.app.Activity;
import android.content.Context;
import android.database.DataSetObserver;
import android.support.v7.view.menu.MenuView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;
import com.nmc.viewbeem.StreamingOffers;
import retrofit2.Callback;
import retrofit2.Response;
/**
* Created by Katerina on 05.04.2016.
*/
public class StreamingOffersAdapter<L> extends User implements ListAdapter {
private Activity activity;
private Context context;
private Callback<ResponseResult> callback;
private Response<ResponseResult> response;
private LayoutInflater inflater;
public StreamingOffersAdapter(Activity activity) {
this.activity=activity;
}
public StreamingOffersAdapter(Context context,Callback<ResponseResult> callback, Response<ResponseResult> response) {
this.callback=callback;
this.response=response;
this.context=context;
inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public class Holder {
private TextView full_name;
private TextView offeredStreams;
private TextView location;
private TextView price;
private TextView currency_symbol;
private TextView total_streamed;
private ImageView background;
private ImageView offer;
private ImageView profile;
private ImageView iconUser;
private ImageView icoStar;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder = new Holder();
View itemView = convertView;
itemView = inflater.inflate(R.layout.listofusers, null);
StreamingOffers s = new StreamingOffers();
User u = new User();
if(itemView==null) {
holder.full_name = (TextView) itemView.findViewById(R.id.full_name);
holder.full_name.setText(getFullName());
holder.location = (TextView) itemView.findViewById(R.id.location);
holder.location.setText(s.getLocation());
holder.price = (TextView) itemView.findViewById(R.id.price);
holder.price.setText(s.getPrice());
holder.currency_symbol = (TextView) itemView.findViewById(R.id.currency_symbol);
holder.currency_symbol.setText(s.getCurrencySymbol());
holder.total_streamed = (TextView) itemView.findViewById(R.id.total_streamed);
holder.total_streamed.setText(u.getTotalStreamed());
}
return itemView;
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
}
@Override
public int getCount() {
return response.getCount();
}
@Override
public Object getItem(int position) {
return response[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public int getItemViewType(int position) {
return 0;
}
@Override
public int getViewTypeCount() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
}