請教大佬,我在啟動ACTIVITY中用了個Fragment,Fragment分加載A,B,C,D,E五個Activity滑動。
現在在B的xml中加了一個GridView,給GridView配置ADAPTER就閃退,已確認LIST有值,
grid.setAdapter(adapter1); 這句一加上,滑動到B就閃退,不就沒問題,可列印出陣列條數。
報錯如下:
01-10 13:58:22.671 7076 7118 W System.err: at android.os.HandlerThread.run(HandlerThread.java:65)
01-10 13:58:22.671 7076 7118 W System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.nio.CharArrayBuffer" on path: DexPathList[[zip file "/data/user/0/com.tencent.mobileqq/files/hotpatch/patch202008211550_relax.jar", zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/system/framework/hwkeystore.jar", zip file "/data/app/com.tencent.mobileqq-mAWflffOJuW8qyfGc9QtxA==/base.apk"],nativeLibraryDirectories=[/data/app/com.tencent.mobileqq-mAWflffOJuW8qyfGc9QtxA==/lib/arm, /data/app/com.tencent.mobileqq-mAWflffOJuW8qyfGc9QtxA==/base.apk!/lib/armeabi, /system/lib, /product/lib, /preavs/lib]]
01-10 13:58:22.671 7076 7118 W System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
uj5u.com熱心網友回復:
把代碼發上來檢查下啊。。。。。。。。。。。。。uj5u.com熱心網友回復:
Fragment下的Activity如下:TabBFm.java
package com.wangjie.fragmenttabhost;
import java.util.List;
import java.util.Vector;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.Toast;
public class TabBFm extends Fragment{
private String html_1;
private List<info1> userList = new Vector<>(); //多執行緒操作LIST用Vector
private adapter1 adapter1;
private GridView grid;
private MainActivity activity;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
activity = ((MainActivity)getActivity());
Man m0 = new Man("https://www.60kan.com/api.php/provide/vod/?ac=videolist",1); //些處引數1用來識別執行緒回呼,在回呼事件中判斷是什么任務的回呼結果
Thread t0 = new Thread(m0);
t0.start();
this.grid=(GridView) activity.fragments.get(0).getView().findViewById(R.id.grid);
return inflater.inflate(R.layout.tab_b, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler(){ //執行緒回呼事件
public void handleMessage(Message msg) {
switch (msg.arg1) {
case 1:
addlist();
break;
}
};
};
/*---------------更新UI-----------------*/
public void addlist(){ //加入資料到gridview
Gson A=new Gson();
this.userList=A.jsonjx(activity,html_1);
this.adapter1=new adapter1(userList,activity);
Toast.makeText(activity,String.valueOf(userList.size()), Toast.LENGTH_SHORT).show();
//this.grid.setAdapter(adapter1);
}
class GetHtml extends Activity {
public void gethtml(String url,int msgID){
synchronized (this) {
HtmlService G =new HtmlService();
html_1=G.取網頁原始碼2(url,"utf-8",5000);
Message message = Message.obtain();
message.arg1= msgID;
mHandler.sendMessage(message);
}
}
}
class Man implements Runnable{
private GetHtml gethtml = new GetHtml();
private String url;
private int msgID;
public Man(String url,int msgID){
this.url = url;
this.msgID=msgID;
}
public void run() {
String url= this.url;
gethtml.gethtml(url,msgID);
try {
Thread.sleep(0);
} catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
取到原始碼JSON決議到加入LIST都沒有問題,而且LIST中是有資料的。
Adapter這樣寫的:
package com.wangjie.fragmenttabhost;
import java.util.List;
import com.squareup.picasso.Picasso;
import com.wangjie.fragmenttabhost.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class adapter1 extends BaseAdapter{
private List<info1> dataList;
private Context context;
private TextView textView1;
private TextView textView2;
private TextView textView3;
private TextView textView4;
private ImageView image;
private LayoutInflater flater;
public adapter1(List<info1> dataList, Context context) {
super();
this.dataList = dataList;
this.context = context;
//this.flater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int position) {
return dataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
flater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = flater.inflate(com.wangjie.fragmenttabhost.R.layout.item1,parent, false);
//activity.fragments.get(0).getView().
}
image =(ImageView) convertView.findViewById(com.wangjie.fragmenttabhost.R.id.img_id);
textView1 = (TextView) convertView.findViewById(com.wangjie.fragmenttabhost.R.id.title);
textView2 = (TextView) convertView.findViewById(com.wangjie.fragmenttabhost.R.id.Ftitle);
textView3 = (TextView) convertView.findViewById(com.wangjie.fragmenttabhost.R.id.fenshu);
textView4 = (TextView) convertView.findViewById(com.wangjie.fragmenttabhost.R.id.genxing);
Picasso
.with(context)
.load(dataList.get(position).getImgUrl())
.placeholder(R.drawable.load)
.resize(300,450)
.error(R.drawable.weizd)
.into(this.image);
textView1.setText(dataList.get(position).getUserName());
textView2.setText(dataList.get(position).getyanyuan());
textView3.setText(dataList.get(position).getfenshu());
textView4.setText(dataList.get(position).getgenxing());
return convertView;
}
}
uj5u.com熱心網友回復:
關于這個事,我簡單說兩句uj5u.com熱心網友回復:
已經解決了,結貼!轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/247440.html
標籤:Android
上一篇:QT的UI上無法添加槽函式
