试图从片段解析JSON文件列表视图 [英] Trying to parse JSON file in Listview from Fragment
问题描述
刚刚发现了很多的JSON用PHP解析在Android在这里和其他地方,并试图与我的项目使用示例。在活动没关系,但改变一个片段它不工作。我认为这是一个愚蠢的错误我是gettint它。
片段code:
包com.example.waitersoriginal;进口的java.util.ArrayList;
进口的java.util.HashMap;进口org.json.JSONArray;
进口org.json.JSONException;
进口org.json.JSONObject;进口android.app.ListFragment;
进口android.app.ProgressDialog;
进口android.os.AsyncTask;
进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ListAdapter;
进口android.widget.ListView;
进口android.widget.SimpleAdapter;公共类ListaFragment扩展ListFragment {私人ProgressDialog pDialog; 私有静态最后弦乐URL_SELECT =HTTP://localhost/waiters/select_bebidas.php// JSONTAGS
私有静态最后弦乐TAG_NOME =节拍器;
私有静态最后弦乐TAG_BEBIDAS =BEBIDAS;
私有静态最后弦乐TAG_DESCR =DESCR;私人JSONArray mProdutos = NULL;
私人的ArrayList<&HashMap的LT;字符串,字符串>> mProdutosList;
公共ListaFragment(){}@覆盖公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState)
{
返回inflater.inflate(R.layout.lista_fragment,集装箱,FALSE);
}@覆盖
公共无效onResume(){
// TODO自动生成方法存根
super.onResume();
//加载通过的AsyncTask的评论
新LoadEvents()执行(); }
公共无效updateJSONdata(){ mProdutosList =新的ArrayList<&HashMap的LT;字符串,字符串>>();
JSONParser jParser =新JSONParser(); JSONObject的JSON = jParser.getJSONFromUrl(URL_SELECT); 尝试{
mProdutos = json.getJSONArray(TAG_BEBIDAS);
的for(int i = 0; I< mProdutos.length();我++){
JSONObject的C = mProdutos.getJSONObject(I) 字符串诺姆= c.getString(TAG_NOME);
字符串DESCR = c.getString(TAG_DESCR); //创建新的HashMap
HashMap的<字符串,字符串>地图=新的HashMap<字符串,字符串>(); map.put(TAG_NOME,诺姆);
map.put(TAG_DESCR,DESCR); mProdutosList.add(地图); } }赶上(JSONException E){
e.printStackTrace();
}
}
私人无效updateList(){
ListAdapter适配器=新SimpleAdapter(getActivity(),mProdutosList,
R.layout.list_item,
新的String [] {TAG_NOME,TAG_DESCR},
新的INT [] {R.id.pid,R.id.name}); setListAdapter(适配器); ListView控件LV = getListView();
lv.setOnItemClickListener(新OnItemClickListener(){ @覆盖
公共无效onItemClick(适配器视图<>母公司,观景,
INT位置,长的id){
}
});
}公共类LoadEvents扩展的AsyncTask<太虚,太虚,布尔> { @覆盖
在preExecute保护无效(){
super.on preExecute();
pDialog =新ProgressDialog(getActivity());
pDialog.setMessage(加载活动...);
pDialog.setIndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@覆盖
保护布尔doInBackground(虚空......为arg0){ updateJSONdata();
返回null;
} @覆盖
保护无效onPostExecute(布尔结果){
super.onPostExecute(结果);
pDialog.dismiss(); updateList();
}
}
}
logcat的错误:
10-22 22:41:40.814:E / AndroidRuntime(2513):致命异常:主要
10-22 22:41:40.814:E / AndroidRuntime(2513):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.waitersoriginal / com.example.waitersoriginal.BebidaActivity}:android.view.InflateException:二进制XML文件行#15:错误充气类片段
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.os.Handler.dispatchMessage(Handler.java:99)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.os.Looper.loop(Looper.java:137)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 22:41:40.814:E / AndroidRuntime(2513):在java.lang.reflect.Method.invokeNative(本机方法)
10-22 22:41:40.814:E / AndroidRuntime(2513):在java.lang.reflect.Method.invoke(Method.java:525)
10-22 22:41:40.814:E / AndroidRuntime(2513):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 22:41:40.814:E / AndroidRuntime(2513):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 22:41:40.814:E / AndroidRuntime(2513):在dalvik.system.NativeStart.main(本机方法)
10-22 22:41:40.814:E / AndroidRuntime(2513):android.view.InflateException:二进制XML文件行#15:错误充气类片段产生的原因
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-22 22:41:40.814:E / AndroidRuntime(2513):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.Activity.setContentView(Activity.java:1895)
10-22 22:41:40.814:E / AndroidRuntime(2513):在com.example.waitersoriginal.BebidaActivity.onCreate(BebidaActivity.java:19)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.Activity.performCreate(Activity.java:5133)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
10-22 22:41:40.814:E / AndroidRuntime(2513):11 ...更多
10-22 22:41:40.814:E / AndroidRuntime(2513):了java.lang.RuntimeException:通过引起内容与观点id属性'android.R.id.list'不是一个ListView类
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ListFragment.ensureList(ListFragment.java:402)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.ListFragment.onViewCreated(ListFragment.java:203)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:866)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.app.Activity.onCreateView(Activity.java:4746)
10-22 22:41:40.814:E / AndroidRuntime(2513):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
10-22 22:41:40.814:E / AndroidRuntime(2513):21 ...更多
任何想法?
感谢所有。
编辑:
lista_fragment.xml
<?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直> < ListView控件
机器人:ID =@ + ID / ListView1的
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT>
< /&的ListView GT; < / LinearLayout中>
编辑2:
logcat的错误:
10-22 23:46:11.842:W / System.err的(2729):org.apache.http.conn.HttpHostConnectException:连接到http:// localhost的拒绝
10-22 23:46:12.062:W / System.err的(2729):在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
10-22 23:46:12.192:W / System.err的(2729):在org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-22 23:46:12.212:W / System.err的(2729):在org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-22 23:46:12.262:W / System.err的(2729):在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-22 23:46:12.292:W / System.err的(2729):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10-22 23:46:12.342:W / System.err的(2729):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-22 23:46:12.352:W / System.err的(2729):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-22 23:46:12.362:W / System.err的(2729):在com.example.waitersoriginal.JSONParser.getJSONFromUrl(JSONParser.java:30)
10-22 23:46:12.362:W / System.err的(2729):在com.example.waitersoriginal.ListaFragment.updateJSONdata(ListaFragment.java:60)
10-22 23:46:12.392:W / System.err的(2729):在com.example.waitersoriginal.ListaFragment $ LoadEvents.doInBackground(ListaFragment.java:122)
10-22 23:46:12.392:W / System.err的(2729):在com.example.waitersoriginal.ListaFragment $ LoadEvents.doInBackground(ListaFragment.java:1)
10-22 23:46:12.412:W / System.err的(2729):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
10-22 23:46:12.422:W / System.err的(2729):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-22 23:46:12.442:W / System.err的(2729):在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)
10-22 23:46:12.462:W / System.err的(2729):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-22 23:46:12.462:W / System.err的(2729):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
10-22 23:46:12.472:W / System.err的(2729):在java.lang.Thread.run(Thread.java:841)
10-22 23:46:12.492:W / System.err的(2729):java.net.ConnectException:产生的原因无法连接到/127.0.0.1(80端口):连接失败:ECONNREFUSED(连接被拒绝)
10-22 23:46:12.512:W / System.err的(2729):在libcore.io.IoBridge.connect(IoBridge.java:114)
10-22 23:46:12.512:W / System.err的(2729):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
10-22 23:46:12.512:W / System.err的(2729):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
10-22 23:46:12.552:W / System.err的(2729):在java.net.Socket.connect(Socket.java:842)
10-22 23:46:12.562:W / System.err的(2729):在org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
10-22 23:46:12.562:W / System.err的(2729):在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
10-22 23:46:12.562:W / System.err的(2729):16 ...更多
10-22 23:46:12.562:W / System.err的(2729):libcore.io.ErrnoException:由造成连接失败:ECONNREFUSED(连接被拒绝)
10-22 23:46:12.592:W / System.err的(2729):在libcore.io.Posix.connect(本机方法)
10-22 23:46:12.652:W / System.err的(2729):在libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
10-22 23:46:12.652:W / System.err的(2729):在libcore.io.IoBridge.connectErrno(IoBridge.java:127)
10-22 23:46:12.662:W / System.err的(2729):在libcore.io.IoBridge.connect(IoBridge.java:112)
10-22 23:46:12.662:W / System.err的(2729):21 ...更多
10-22 23:46:12.662:E /缓存器的错误(2729):错误转换结果显示java.lang.NullPointerException:锁== NULL
10-22 23:46:12.702:E / JSON解析器(2729):错误分析数据org.json.JSONException:在字符输入0结束
10-22 23:46:12.702:W / dalvikvm(2729):主题ID = 11:螺纹未捕获的异常退出(组= 0xb2f30648)
10-22 23:46:12.712:E / AndroidRuntime(2729):致命异常:AsyncTask的#1
10-22 23:46:12.712:E / AndroidRuntime(2729):了java.lang.RuntimeException:执行doInBackground发生错误()
10-22 23:46:12.712:E / AndroidRuntime(2729):在android.os.AsyncTask $ 3.done(AsyncTask.java:299)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.FutureTask.setException(FutureTask.java:219)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
10-22 23:46:12.712:E / AndroidRuntime(2729):在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.lang.Thread.run(Thread.java:841)
10-22 23:46:12.712:E / AndroidRuntime(2729):因:显示java.lang.NullPointerException
10-22 23:46:12.712:E / AndroidRuntime(2729):在com.example.waitersoriginal.ListaFragment.updateJSONdata(ListaFragment.java:65)
10-22 23:46:12.712:E / AndroidRuntime(2729):在com.example.waitersoriginal.ListaFragment $ LoadEvents.doInBackground(ListaFragment.java:122)
10-22 23:46:12.712:E / AndroidRuntime(2729):在com.example.waitersoriginal.ListaFragment $ LoadEvents.doInBackground(ListaFragment.java:1)
10-22 23:46:12.712:E / AndroidRuntime(2729):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
10-22 23:46:12.712:E / AndroidRuntime(2729):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-22 23:46:12.712:E / AndroidRuntime(2729):... 4个
10-22 23:46:13.412:W / EGL_emulation(2729):eglSurfaceAttrib没有实现
10-22 23:46:14.142:E /窗口管理器(2729):活动com.example.waitersoriginal.BebidaActivity渗漏窗口com.android.internal.policy.impl.PhoneWindow $ {DecorView VE b320ffd0 .... - [R .. ....,最初这里加入D- 0,0-576,96}
10-22 23:46:14.142:E /窗口管理器(2729):android.view.WindowLeaked:活动com.example.waitersoriginal.BebidaActivity渗漏窗口com.android.internal.policy.impl.PhoneWindow $ {DecorView VE b320ffd0。这原本是在这里加入... - [R ......ð0,0-576,96}
10-22 23:46:14.142:E /窗口管理器(2729):在android.view.ViewRootImpl<&初始化GT;(ViewRootImpl.java:345)
10-22 23:46:14.142:E /窗口管理器(2729):在android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
10-22 23:46:14.142:E /窗口管理器(2729):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.Dialog.show(Dialog.java:281)
10-22 23:46:14.142:E /窗口管理器(2729):在com.example.waitersoriginal.ListaFragment $ LoadEvents.on preExecute(ListaFragment.java:117)
10-22 23:46:14.142:E /窗口管理器(2729):在android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
10-22 23:46:14.142:E /窗口管理器(2729):在android.os.AsyncTask.execute(AsyncTask.java:534)
10-22 23:46:14.142:E /窗口管理器(2729):在com.example.waitersoriginal.ListaFragment.onResume(ListaFragment.java:50)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.Fragment.performResume(Fragment.java:1738)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1039)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1850)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.Activity.performResume(Activity.java:5221)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2266)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)
10-22 23:46:14.142:E /窗口管理器(2729):在android.os.Handler.dispatchMessage(Handler.java:99)
10-22 23:46:14.142:E /窗口管理器(2729):在android.os.Looper.loop(Looper.java:137)
10-22 23:46:14.142:E /窗口管理器(2729):在android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 23:46:14.142:E /窗口管理器(2729):在java.lang.reflect.Method.invokeNative(本机方法)
10-22 23:46:14.142:E /窗口管理器(2729):在java.lang.reflect.Method.invoke(Method.java:525)
10-22 23:46:14.142:E /窗口管理器(2729):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 23:46:14.142:E /窗口管理器(2729):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 23:46:14.142:E /窗口管理器(2729):在dalvik.system.NativeStart.main(本机方法)
您刚才提到您的类是ListFragment,这意味着你的XML应该只有一个列表视图,在这里你有一个的LinearLayout和里面一个ListView。你的XML应该是这样的......
< ListView控件的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:ID =@ + ID /列表视图
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/>
如果您不希望改变你的XML,改变你的类将片段
公共类ListaFragment扩展片段
手动查找列表视图
的ListView ListView的;
@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
捆绑savedInstanceState){
CTX = getActivity();
LayoutInflater m_inflater = LayoutInflater.from(getActivity());
rootView = m_inflater.inflate(R.layout.lista_fragment,NULL);
ListView控件= rootView.findViewById(R.id.listView1);
返回rootView;
}
和把它从那里。
Just found a lot of examples of JSON parsing with PHP on Android here and other places and trying to use with my project. In Activity it's Okay, but changing to a Fragment it doesn't work. I think it's a stupid mistake i'm gettint it.
The fragment code:
package com.example.waitersoriginal;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListFragment;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListaFragment extends ListFragment {
private ProgressDialog pDialog;
private static final String URL_SELECT ="http://localhost/waiters/select_bebidas.php";
//JSONTAGS
private static final String TAG_NOME = "NOME";
private static final String TAG_BEBIDAS = "bebidas";
private static final String TAG_DESCR = "DESCR";
private JSONArray mProdutos = null;
private ArrayList<HashMap<String, String>> mProdutosList;
public ListaFragment(){}
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.lista_fragment, container, false);
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
//loading the comments via AsyncTask
new LoadEvents().execute();
}
public void updateJSONdata() {
mProdutosList = new ArrayList<HashMap<String, String>>();
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(URL_SELECT);
try {
mProdutos = json.getJSONArray(TAG_BEBIDAS);
for (int i = 0; i < mProdutos.length(); i++) {
JSONObject c = mProdutos.getJSONObject(i);
String nome = c.getString(TAG_NOME);
String descr = c.getString(TAG_DESCR);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_NOME, nome);
map.put(TAG_DESCR, descr);
mProdutosList.add(map);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void updateList() {
ListAdapter adapter = new SimpleAdapter(getActivity(), mProdutosList,
R.layout.list_item,
new String[] { TAG_NOME, TAG_DESCR},
new int[] { R.id.pid, R.id.name});
setListAdapter(adapter);
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
}
public class LoadEvents extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Loading Events...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected Boolean doInBackground(Void... arg0) {
updateJSONdata();
return null;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
pDialog.dismiss();
updateList();
}
}
}
Logcat error:
10-22 22:41:40.814: E/AndroidRuntime(2513): FATAL EXCEPTION: main
10-22 22:41:40.814: E/AndroidRuntime(2513): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.waitersoriginal/com.example.waitersoriginal.BebidaActivity}: android.view.InflateException: Binary XML file line #15: Error inflating class fragment
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.os.Looper.loop(Looper.java:137)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 22:41:40.814: E/AndroidRuntime(2513): at java.lang.reflect.Method.invokeNative(Native Method)
10-22 22:41:40.814: E/AndroidRuntime(2513): at java.lang.reflect.Method.invoke(Method.java:525)
10-22 22:41:40.814: E/AndroidRuntime(2513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 22:41:40.814: E/AndroidRuntime(2513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 22:41:40.814: E/AndroidRuntime(2513): at dalvik.system.NativeStart.main(Native Method)
10-22 22:41:40.814: E/AndroidRuntime(2513): Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class fragment
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-22 22:41:40.814: E/AndroidRuntime(2513): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.Activity.setContentView(Activity.java:1895)
10-22 22:41:40.814: E/AndroidRuntime(2513): at com.example.waitersoriginal.BebidaActivity.onCreate(BebidaActivity.java:19)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.Activity.performCreate(Activity.java:5133)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
10-22 22:41:40.814: E/AndroidRuntime(2513): ... 11 more
10-22 22:41:40.814: E/AndroidRuntime(2513): Caused by: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list' that is not a ListView class
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ListFragment.ensureList(ListFragment.java:402)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.ListFragment.onViewCreated(ListFragment.java:203)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:866)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.app.Activity.onCreateView(Activity.java:4746)
10-22 22:41:40.814: E/AndroidRuntime(2513): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
10-22 22:41:40.814: E/AndroidRuntime(2513): ... 21 more
Any ideas?
Thanks for all.
EDIT:
lista_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
EDIT 2:
Logcat error:
10-22 23:46:11.842: W/System.err(2729): org.apache.http.conn.HttpHostConnectException: Connection to http://localhost refused
10-22 23:46:12.062: W/System.err(2729): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
10-22 23:46:12.192: W/System.err(2729): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-22 23:46:12.212: W/System.err(2729): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-22 23:46:12.262: W/System.err(2729): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-22 23:46:12.292: W/System.err(2729): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10-22 23:46:12.342: W/System.err(2729): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-22 23:46:12.352: W/System.err(2729): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-22 23:46:12.362: W/System.err(2729): at com.example.waitersoriginal.JSONParser.getJSONFromUrl(JSONParser.java:30)
10-22 23:46:12.362: W/System.err(2729): at com.example.waitersoriginal.ListaFragment.updateJSONdata(ListaFragment.java:60)
10-22 23:46:12.392: W/System.err(2729): at com.example.waitersoriginal.ListaFragment$LoadEvents.doInBackground(ListaFragment.java:122)
10-22 23:46:12.392: W/System.err(2729): at com.example.waitersoriginal.ListaFragment$LoadEvents.doInBackground(ListaFragment.java:1)
10-22 23:46:12.412: W/System.err(2729): at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-22 23:46:12.422: W/System.err(2729): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-22 23:46:12.442: W/System.err(2729): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-22 23:46:12.462: W/System.err(2729): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-22 23:46:12.462: W/System.err(2729): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-22 23:46:12.472: W/System.err(2729): at java.lang.Thread.run(Thread.java:841)
10-22 23:46:12.492: W/System.err(2729): Caused by: java.net.ConnectException: failed to connect to /127.0.0.1 (port 80): connect failed: ECONNREFUSED (Connection refused)
10-22 23:46:12.512: W/System.err(2729): at libcore.io.IoBridge.connect(IoBridge.java:114)
10-22 23:46:12.512: W/System.err(2729): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
10-22 23:46:12.512: W/System.err(2729): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
10-22 23:46:12.552: W/System.err(2729): at java.net.Socket.connect(Socket.java:842)
10-22 23:46:12.562: W/System.err(2729): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
10-22 23:46:12.562: W/System.err(2729): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
10-22 23:46:12.562: W/System.err(2729): ... 16 more
10-22 23:46:12.562: W/System.err(2729): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
10-22 23:46:12.592: W/System.err(2729): at libcore.io.Posix.connect(Native Method)
10-22 23:46:12.652: W/System.err(2729): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
10-22 23:46:12.652: W/System.err(2729): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
10-22 23:46:12.662: W/System.err(2729): at libcore.io.IoBridge.connect(IoBridge.java:112)
10-22 23:46:12.662: W/System.err(2729): ... 21 more
10-22 23:46:12.662: E/Buffer Error(2729): Error converting result java.lang.NullPointerException: lock == null
10-22 23:46:12.702: E/JSON Parser(2729): Error parsing data org.json.JSONException: End of input at character 0 of
10-22 23:46:12.702: W/dalvikvm(2729): threadid=11: thread exiting with uncaught exception (group=0xb2f30648)
10-22 23:46:12.712: E/AndroidRuntime(2729): FATAL EXCEPTION: AsyncTask #1
10-22 23:46:12.712: E/AndroidRuntime(2729): java.lang.RuntimeException: An error occured while executing doInBackground()
10-22 23:46:12.712: E/AndroidRuntime(2729): at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
10-22 23:46:12.712: E/AndroidRuntime(2729): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.lang.Thread.run(Thread.java:841)
10-22 23:46:12.712: E/AndroidRuntime(2729): Caused by: java.lang.NullPointerException
10-22 23:46:12.712: E/AndroidRuntime(2729): at com.example.waitersoriginal.ListaFragment.updateJSONdata(ListaFragment.java:65)
10-22 23:46:12.712: E/AndroidRuntime(2729): at com.example.waitersoriginal.ListaFragment$LoadEvents.doInBackground(ListaFragment.java:122)
10-22 23:46:12.712: E/AndroidRuntime(2729): at com.example.waitersoriginal.ListaFragment$LoadEvents.doInBackground(ListaFragment.java:1)
10-22 23:46:12.712: E/AndroidRuntime(2729): at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-22 23:46:12.712: E/AndroidRuntime(2729): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-22 23:46:12.712: E/AndroidRuntime(2729): ... 4 more
10-22 23:46:13.412: W/EGL_emulation(2729): eglSurfaceAttrib not implemented
10-22 23:46:14.142: E/WindowManager(2729): Activity com.example.waitersoriginal.BebidaActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b320ffd0 V.E..... R......D 0,0-576,96} that was originally added here
10-22 23:46:14.142: E/WindowManager(2729): android.view.WindowLeaked: Activity com.example.waitersoriginal.BebidaActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b320ffd0 V.E..... R......D 0,0-576,96} that was originally added here
10-22 23:46:14.142: E/WindowManager(2729): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
10-22 23:46:14.142: E/WindowManager(2729): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
10-22 23:46:14.142: E/WindowManager(2729): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.Dialog.show(Dialog.java:281)
10-22 23:46:14.142: E/WindowManager(2729): at com.example.waitersoriginal.ListaFragment$LoadEvents.onPreExecute(ListaFragment.java:117)
10-22 23:46:14.142: E/WindowManager(2729): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
10-22 23:46:14.142: E/WindowManager(2729): at android.os.AsyncTask.execute(AsyncTask.java:534)
10-22 23:46:14.142: E/WindowManager(2729): at com.example.waitersoriginal.ListaFragment.onResume(ListaFragment.java:50)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.Fragment.performResume(Fragment.java:1738)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1039)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1850)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.Activity.performResume(Activity.java:5221)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2266)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 23:46:14.142: E/WindowManager(2729): at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 23:46:14.142: E/WindowManager(2729): at android.os.Looper.loop(Looper.java:137)
10-22 23:46:14.142: E/WindowManager(2729): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 23:46:14.142: E/WindowManager(2729): at java.lang.reflect.Method.invokeNative(Native Method)
10-22 23:46:14.142: E/WindowManager(2729): at java.lang.reflect.Method.invoke(Method.java:525)
10-22 23:46:14.142: E/WindowManager(2729): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 23:46:14.142: E/WindowManager(2729): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 23:46:14.142: E/WindowManager(2729): at dalvik.system.NativeStart.main(Native Method)
You have mentioned your class to be ListFragment, which means your xml should have only a listview, where as you have a LinearLayout and a ListView inside it. Your xml should be something like this...
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
if you do not wish to change your xml, change your class to a Fragment
public class ListaFragment extends Fragment
Manually find the listview
ListView listView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
ctx=getActivity();
LayoutInflater m_inflater = LayoutInflater.from(getActivity());
rootView = m_inflater.inflate(R.layout.lista_fragment, null);
listView=rootView.findViewById(R.id.listView1);
return rootView;
}
and take it from there.
这篇关于试图从片段解析JSON文件列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!