Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onItemClickListener()startActivity应用程序中的ListFragment_Android_Android Listview_Android Listfragment - Fatal编程技术网

Android onItemClickListener()startActivity应用程序中的ListFragment

Android onItemClickListener()startActivity应用程序中的ListFragment,android,android-listview,android-listfragment,Android,Android Listview,Android Listfragment,我无法从ListFragment上的onItemClickListener()调用startActivity(intent)。当我单击listview中的项目时,应用程序崩溃 代码如下: public class AndroidFragment extends SherlockListFragment{ static{ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permi

我无法从ListFragment上的onItemClickListener()调用startActivity(intent)。当我单击listview中的项目时,应用程序崩溃

代码如下:

public class AndroidFragment extends SherlockListFragment{

    static{
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    static final String URL = "***";
    // XML node keys
    static final String KEY_ITEM = "novost"; // parent node
    //static final String KEY_ID = "id";
    static final String KEY_NAME = "naslov";
    static final String KEY_COST = "datum";
    static final String KEY_DESC = "text";
    static final String KEY_LINK = "link";
    static final String KEY_LINK1 = "doc";
    ArrayList<HashMap<String, String>> menuItems;
    String[] from = { KEY_NAME, KEY_DESC, KEY_COST,KEY_LINK,KEY_LINK1};

    /** Ids of views in listview_layout */
    int[] to = { R.id.naslov, R.id.novost, R.id.datum,R.id.link,R.id.link1};
    ListView list;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);
      new loadListView().execute();
      ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String name = ((TextView) view.findViewById(R.id.naslov)).getText().toString();
                String cost = ((TextView) view.findViewById(R.id.datum)).getText().toString();

                String description = ((TextView) view.findViewById(R.id.novost)).getText().toString();
                String link = ((TextView) view.findViewById(R.id.link)).getText().toString();
                String link1 = ((TextView) view.findViewById(R.id.link1)).getText().toString();
                //String link_asd=link;


                // Starting new intent
                Intent in = new Intent(getActivity().getBaseContext(), SingleMenuItemActivity.class);
                in.putExtra(KEY_NAME, name);
                in.putExtra(KEY_COST, cost);
                in.putExtra(KEY_DESC, description);
                if(link==null)
                {
                    link=null;
                }else{
                in.putExtra(KEY_LINK, link);
                in.putExtra(KEY_LINK1, link1);
                }
                //in.putExtra("link1", link_asd);
                startActivity(in);

            }
        });


    }
    /*@Override
    public void onListItemClick(ListView list, View v, int position, long id) {
        /**
         * Toast message will be shown when you click any list element

        //Toast.makeText(getActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
        String name = ((TextView) v.findViewById(R.id.naslov)).getText().toString();
        String cost = ((TextView) v.findViewById(R.id.datum)).getText().toString();

        String description = ((TextView) v.findViewById(R.id.novost)).getText().toString();
        String link = ((TextView) v.findViewById(R.id.link)).getText().toString();
        String link1 = ((TextView) v.findViewById(R.id.link1)).getText().toString();
        //String link_asd=link;


        // Starting new intent
        Intent in = new Intent(getActivity(), SingleMenuItemActivity.class);
        in.putExtra(KEY_NAME, name);
        in.putExtra(KEY_COST, cost);
        in.putExtra(KEY_DESC, description);
        if(link==null)
        {

        }else{
        in.putExtra(KEY_LINK, link);
        in.putExtra(KEY_LINK1, link1);
        }
        //in.putExtra("link1", link_asd);
        startActivity(in);
        Log.e("error",name);
        super.onListItemClick(list, v, position, id);
    }*/

    @Override
    public void onResume() {
        super.onResume();
        //Log.w("Aplikacija_resume","Startovana" );
        //new loadListView().execute();


    }

    public class loadListView extends AsyncTask<Integer, String, String> 
    {   
        private final ProgressDialog dialog = new ProgressDialog(getActivity());
        @Override protected void onPreExecute() 
        { 

            //Toast.makeText(getActivity(), "Ucitavanje...", Toast.LENGTH_LONG).show();
            //

            this.dialog.setMessage("Molimo da sačekate ...");
        super.onPreExecute();
        } 
        @Override protected String doInBackground(Integer... args) 
        { // updating UI from Background Thread 
        menuItems = new ArrayList<HashMap<String, String>>();
            final XMLParser parser = new XMLParser();
            String xml = parser.getXmlFromUrl(URL); // getting XML
            Document doc = parser.getDomElement(xml); // getting DOM element

            NodeList nl = doc.getElementsByTagName(KEY_ITEM);
            // looping through all item nodes <item>
            for (int i = 0; i < nl.getLength(); i++) {
                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();
                Element e = (Element) nl.item(i);
                // adding each child node to HashMap key => value

                map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
                map.put(KEY_COST, "Datum: " + parser.getValue(e, KEY_COST));
                map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
                map.put(KEY_LINK, parser.getValue(e, KEY_LINK));
                map.put(KEY_LINK1, parser.getValue(e, KEY_LINK1));

                // adding HashList to ArrayList
                menuItems.add(map);

            }



        return null; 
        } 
        @Override
        protected void onPostExecute(String args)
        { 
            //Toast.makeText(getActivity(), "Ucitano", Toast.LENGTH_LONG).show();

            SimpleAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), menuItems, R.layout.list_row, from, to);
            setListAdapter(adapter);
            if (this.dialog.isShowing()) {
                  this.dialog.dismiss();
                  }


            // Instantiating an adapter to store each items
            // R.layout.listview_layout defines the layout of each item



                } 
                }


}
公共类AndroidFragment扩展了SherlockListFragment{
静止的{
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
}
静态最终字符串URL=“***”;
//XML节点密钥
静态最终字符串KEY\u ITEM=“novost”//父节点
//静态最终字符串键\u ID=“ID”;
静态最终字符串键\u NAME=“naslov”;
静态最终字符串键\u COST=“datum”;
静态最终字符串键\u DESC=“text”;
静态最终字符串键\u LINK=“LINK”;
静态最终字符串键\u LINK1=“doc”;
ArrayList菜单项;
字符串[]from={KEY\u NAME,KEY\u DESC,KEY\u COST,KEY\u LINK,KEY\u LINK1};
/**listview\u布局中的视图ID*/
int[]to={R.id.naslov,R.id.novost,R.id.datum,R.id.link,R.id.link1};
列表视图列表;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
新建loadListView().execute();
ListView lv=getListView();
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//从选定的ListItem获取值
字符串名称=((TextView)view.findViewById(R.id.naslov)).getText().toString();
字符串成本=((TextView)view.findViewById(R.id.datum)).getText().toString();
字符串描述=((TextView)view.findViewById(R.id.novost)).getText().toString();
字符串链接=((TextView)view.findViewById(R.id.link)).getText().toString();
字符串link1=((TextView)view.findViewById(R.id.link1)).getText().toString();
//字符串链接\u asd=链接;
//开始新的意图
Intent in=新的Intent(getActivity().getBaseContext(),SingleMenuItemActivity.class);
in.putExtra(键名称、名称);
额外费用(关键成本、成本);
in.putExtra(图例说明、说明);
if(link==null)
{
link=null;
}否则{
in.putExtra(键链接,链接);
in.putExtra(链接1键,链接1键);
}
//in.putExtra(“link1”,link_asd);
星触觉(in);
}
});
}
/*@凌驾
public void onListItemClick(列表视图列表、视图v、整数位置、长id){
/**
*单击任何列表元素时,将显示Toast消息
//Toast.makeText(getActivity(),getListView().getItemAtPosition(position).toString(),Toast.LENGTH_LONG).show();
字符串名称=((TextView)v.findViewById(R.id.naslov)).getText().toString();
字符串成本=((TextView)v.findViewById(R.id.datum)).getText().toString();
字符串描述=((TextView)v.findViewById(R.id.novost)).getText().toString();
字符串链接=((TextView)v.findViewById(R.id.link)).getText().toString();
字符串link1=((TextView)v.findviewbyd(R.id.link1)).getText().toString();
//字符串链接\u asd=链接;
//开始新的意图
Intent in=新的Intent(getActivity(),SingleMenuItemActivity.class);
in.putExtra(键名称、名称);
额外费用(关键成本、成本);
in.putExtra(图例说明、说明);
if(link==null)
{
}否则{
in.putExtra(键链接,链接);
in.putExtra(链接1键,链接1键);
}
//in.putExtra(“link1”,link_asd);
星触觉(in);
Log.e(“错误”,名称);
super.onListItemClick(列表、v、位置、id);
}*/
@凌驾
恢复时公开作废(){
super.onResume();
//Log.w(“Aplikacija_简历”、“Startovana”);
//新建loadListView().execute();
}
公共类loadListView扩展了异步任务
{   
private final ProgressDialog=新建ProgressDialog(getActivity());
@重写受保护的void onPreExecute()
{ 
//Toast.makeText(getActivity(),“Ucitavanje…”,Toast.LENGTH_LONG.show();
//
this.dialog.setMessage(“Molimo da sačekate…”);
super.onPreExecute();
} 
@重写受保护的字符串doInBackground(整数…args)
{//从后台线程更新UI
menuItems=newarraylist();
final XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL);//获取xml
Document doc=parser.getDomeElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(键项);
//循环通过所有项目节点
对于(int i=0;ivalue
put(KEY_NAME,parser.getValue(e,KEY_NAME));
put(KEY_COST,Datum:+parser.getValue(e,KEY_COST));
put(KEY_DESC,parser.getValue(e,KEY_DESC));
put(KEY_-LINK,parser.getValue(e,KEY_-LINK));
put(KEY_LINK1,parser.getValue(e,KEY_LINK1));
//将哈希列表添加到ArrayList
menuItems.add(地图);
}
返回null;
} 
@凌驾
受保护的void onPostExecute(字符串参数)
{ 
//Toast.makeText(getActivity(),“Ucitano”,Toast.LENGTH_LONG.show();
SimpleAdapter=新建SimpleAdapter(getActivity().getBaseContext(),菜单项,R.layout.list_行,fro