gpt4 book ai didi

java - 无法在 onComplete 方法中设置适配器 Facebook SDK,ANDROID

转载 作者:行者123 更新时间:2023-11-30 03:05:38 25 4
gpt4 key购买 nike

我无法为名为“lista”的 GridView 设置适配器。这是我的 Activity :

public class ListaAmigos extends Activity {

private String TAG = "ListaAmigos";
protected static Context context;
private GridView lista;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lista_amigos);
context = getApplicationContext();

lista = (GridView) findViewById(R.layout.lista_amigos);

Session session = Session.getActiveSession();

if (session != null && session.isOpened()) {
facebookRequest(session);
}

}

private void facebookRequest(Session session) {
Request friendsRequest = createRequest(session);
RequestAsyncTask requestAsync = new RequestAsyncTask(friendsRequest);
requestAsync.execute();

friendsRequest.setCallback(new Request.Callback() {
@Override
public void onCompleted(Response response) {
List<GraphUser> friends = getResults(response);

ListarAmigosAdapter adapter = new ListarAmigosAdapter(context,
friends);

lista.setAdapter(adapter);

}

});
}

private Request createRequest(Session session) {
Request request = Request.newGraphPathRequest(session, "me/friends",
null);

Set<String> fields = new HashSet<String>();
String[] requiredFields = new String[] { "id", "name",
"picture.type(large)" };
fields.addAll(Arrays.asList(requiredFields));

Bundle parameters = request.getParameters();
parameters.putString("fields", TextUtils.join(",", fields));
request.setParameters(parameters);

return request;
}

private List<GraphUser> getResults(Response response) {
GraphMultiResult multiResult = response
.getGraphObjectAs(GraphMultiResult.class);
GraphObjectList<GraphObject> data = multiResult.getData();
return data.castToListOf(GraphUser.class);
}


还有我的适配器:

public class ListarAmigosAdapter extends BaseAdapter {

private List<GraphUser> friends;
private BitmapLruCache imageCache;
private Context context;

public ListarAmigosAdapter(Context context, List<GraphUser> friends) {
this.friends = friends;
this.context = context;
imageCache = new BitmapLruCache();
}

public int getCount() {
return friends.size();
}

public GraphUser getItem(int position) {
return friends.get(position);
}

public long getItemId(int position) {
return Long.parseLong(friends.get(position).getId());
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(ListaAmigos.context);
convertView = inflater.inflate(R.layout.un_amigo, null);

holder = new ViewHolder();

holder.mRequestQueue = Volley.newRequestQueue(ListaAmigos.context);
holder.imageLoader = new ImageLoader(holder.mRequestQueue,
imageCache);

holder.position = position;
holder.foto = (NetworkImageView) convertView
.findViewById(R.id.imagen);
holder.nombre = (TextView) convertView.findViewById(R.id.nombre);
convertView.setTag(holder);
}

JSONObject friendsJSON = friends.get(position).getInnerJSONObject();

try {
holder.nombre.setText(friendsJSON.getString("name"));

} catch (JSONException e) {
Log.d("JSON error " + e.getMessage(), "ERROR JSON");
}

return itemView;
}

static class ViewHolder {
ImageLoader imageLoader;
RequestQueue mRequestQueue;
NetworkImageView foto;
TextView nombre;
int position;
}


错误:

02-18 19:27:02.561: E/AndroidRuntime(25109): FATAL EXCEPTION: main
02-18 19:27:02.561: E/AndroidRuntime(25109): java.lang.NullPointerException
02-18 19:27:02.561: E/AndroidRuntime(25109): at com.ardroid.fav.lista_amigos.ListaAmigos$1.onCompleted(ListaAmigos.java:59)
02-18 19:27:02.561: E/AndroidRuntime(25109): at com.facebook.Request$4.run(Request.java:1669)
02-18 19:27:02.561: E/AndroidRuntime(25109): at android.os.Handler.handleCallback(Handler.java:615)
02-18 19:27:02.561: E/AndroidRuntime(25109): at android.os.Handler.dispatchMessage(Handler.java:92)
02-18 19:27:02.561: E/AndroidRuntime(25109): at android.os.Looper.loop(Looper.java:137)
02-18 19:27:02.561: E/AndroidRuntime(25109): at android.app.ActivityThread.main(ActivityThread.java:4867)
02-18 19:27:02.561: E/AndroidRuntime(25109): at java.lang.reflect.Method.invokeNative(Native Method)
02-18 19:27:02.561: E/AndroidRuntime(25109): at java.lang.reflect.Method.invoke(Method.java:511)
02-18 19:27:02.561: E/AndroidRuntime(25109): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
02-18 19:27:02.561: E/AndroidRuntime(25109): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
02-18 19:27:02.561: E/AndroidRuntime(25109): at dalvik.system.NativeStart.main(Native Method)

最佳答案

您不能为您的 ListView 设置适配器,因为它在您执行此操作时为 null。这就是堆栈跟踪中的 NullPointerException 的含义。

所以这里 lista == null:

 lista.setAdapter(adapter);

此时您应该查看为什么它为空。看来原因就在这里

  lista = (GridView) findViewById(R.layout.lista_amigos);

你正在查找一个 R.layout 但你在这里想要的是一个 View 的 ìd,所以像这样:

  lista = (GridView) findViewById(R.id.lista_amigos);

或者您的view 的id。请记住,findViewById 将在找不到 id 时返回 null。

关于java - 无法在 onComplete 方法中设置适配器 Facebook SDK,ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com