当前位置: 首页 > 知识库问答 >
问题:

带片段的Listview截击

罗飞宇
2023-03-14
public class HomeFragment extends Fragment {
private List<Produk> produkList = new ArrayList<Produk>();
private ListView listView;
private CustomListAdapter adapter;
private ProgressDialog pDialog;
private ServerRequest serverRequest;
JSONArray member = null;
private static final String url = "http://10.0.3.2:808/Koen_CI/index.php/daftar_barang_control";

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {         
    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
    return rootView;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    loadPreferences();
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    Log.d("TAG", "TEST1");
    listView = (ListView) getActivity().findViewById(R.id.list);
    Log.d("TAG", "TEST2");
    adapter = new CustomListAdapter(getActivity(), produkList);
    Log.d("TAG", "TEST3");
    listView.setAdapter(adapter);
    Log.d("TAG", "TEST4");

    // Creating volley request obj
    JsonArrayRequest produkReq = new JsonArrayRequest(url,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d("TAG", response.toString());
                    hidePDialog();
                    // Parsing json
                    for (int i = 0; i < response.length(); i++) {
                        try {

                            JSONObject obj = response.getJSONObject(i);
                            Produk produk = new Produk();
                            produk.setNamaProduk(obj.getString("nama_produk"));
                            produk.setHargaProduk(obj.getString("harga_produk"));
                            produk.setFotoProduk(obj.getString("foto_produk"));
                            Log.d("TAG", "TAG : " + produk.getNamaProduk());    

                            // adding movie to movies array
                            produkList.add(produk);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }

                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d("TAG", "Error: " + error.getMessage());
                    hidePDialog();

                }
            });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(produkReq);
}
adapter = new CustomListAdapter(getActivity(), produkList);
public class CustomListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Produk> produkItems;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();

 public CustomListAdapter(Activity activity, List<Produk> produkItems) {
    this.activity = activity;
    this.produkItems = produkItems;
}

@Override
public int getCount() {
    return produkItems.size();
}

@Override
public Object getItem(int location) {
    return produkItems.get(location);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.list_row, null);

    if (imageLoader == null)
        imageLoader = AppController.getInstance().getImageLoader();
    NetworkImageView thumbNail = (NetworkImageView) convertView
            .findViewById(R.id.thumbnail);
    TextView title = (TextView) convertView.findViewById(R.id.namaProduk);
    TextView rating = (TextView)         convertView.findViewById(R.id.hargastokProduk);

    // getting movie data for the row
    Produk p = produkItems.get(position);

    // thumbnail image
    thumbNail.setImageUrl(p.getFotoProduk(), imageLoader);

    // title
    title.setText(p.getNamaProduk());

    // rating
    rating.setText("Harga: " + p.getHargaProduk());

    return convertView;
}

}

02-27 04:45:26.808:e/AndroidRuntime(4739):致命异常:main 02-27 04:45:26.808:e/AndroidRuntime(4739):java.lang.runtimeException:无法启动活动ComponentInfo{com.koenb_fashion_fix/com.koenb_fashion_fix.mainActivity}:java.lang.nullpointerException 02-27 04:45:26.808:e/AndroidRuntime(4739):at 4739):at android.app.activitythread.handlelaunchactivity(activitythread.java:2084)02-27 04:45:26.808:e/androidruntime(4739):at android.app.activitythread.access$600(activitythread.java:130)02-27 04:45:26.808:e/androidruntime(4739):at android.app.activitythread.handler.dispatchmessage(activitythread.java:1195)02-27 handler.java:99)02-27 04:45:26.808:e/AndroidRuntime(4739):at android.os.looper.loop(looper.java:137)02-27 04:45:26.808:e/AndroidRuntime(4739):at android.app.activityThread.main(ActivityThread.java:4745)02-27 04:45:26.808:e/androidRuntime(4739):at java.lang.reflect.Method.invokenative(本机方法)02-27 04:45:26.808:e/androidRuntime(4739):at java.lang.reflect.Method.invoke(Method.java:511)02-27 04:45:26.808:e/androidRuntime(4739):at RoidRuntime(4739):at com.android.internal.os.zygoteinit.main(zygoteinit.java:553)02-27 04:45:26.808:e/androidRuntime(4739):at dalvik.system.nativeStart.main(本机方法)02-27 04:45:26.808:e/androidRuntime(4739):brouste:java.lang.nullpointerException 02-27 04:45:26.808:e/androidRuntime(4739):at 808:e/androidruntime(4739):at com.koenb_fashion_fix.home_fragment.oncreate(Home_fragment.java:72)02-27 04:45:26.808:e/androidruntime(4739):at android.app.fragmentManager.java:796)02-27 04:45:26.808:e/AndroidRuntime(4739):at Android.app.fragmentManagerImpl.moveToState(fragmentManager.java:1035)02-27 04:45:26.808:e/AndroidRuntime(4739):at Android.app.backStackRecord.run(backStackRecord.java:635)02-27 04:45:26.808:e/AndroidRuntime(4739):at Android.app.fragmentManagerImpl.execPendingActions(fragmentManager.java:1397)02-27 FormStart(activity.java:5017)02-27 04:45:26.808:e/AndroidRuntime(4739):at Android.app.activityThread.performLaunchActivity(activityThread.java:2032)02-27 04:45:26.808:e/AndroidRuntime(4739):...11多

共有1个答案

徐文彬
2023-03-14

这里:

listView = (ListView) getActivity().findViewById(R.id.list);

使用getactivity()调用FindViewByID方法意味着从添加了片段的活动布局访问视图。

oncreateview中使用rootview对象访问来自片段布局的视图:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {         
    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
    listView = (ListView) rootView.findViewById(R.id.list);
    return rootView;
}
 类似资料:
  • 当我从listview中添加或删除一个项目时,listview不会更新,除非我在viewpager中滚动到屏幕外,然后返回,在片段中再次触发OnCreate方法。这是基于eclipse中的viewpager模板的,我只是在片段中添加了一个listview,而不仅仅是一个textview。将notifyDataSetChanged放置到片段中没有帮助,也没有向片段中添加OnResume。以下是主要活

  • 我正在尝试将ListView与fragmnet中的自定义适配器(baseAdapter)一起使用。 当我直接在MainActivity中使用此代码时,一切正常,但当我在片段中使用此代码时,它没有崩溃,但它没有显示任何内容,它只是一个空白片段。另外,当我尝试使用简单的arrayAdapter在片段中绑定一个textView时,它工作得很好,所以我认为问题将出现在我的自定义适配器中。 为什么不显示Li

  • 我有Mainactive,它保存片段。我的一个片段(参与者)检查数据库中是否有任何内容。如果没有,则显示带有消息以添加数据的片段(空参与者列表)。如果是,它显示带有2个选项卡的TabHost片段,其中一个包含带有数据库条目的ListView片段(参与者列表)。有一个FAB按钮可以添加更多记录。添加另一条记录后如何刷新ListView?我不确定,因为TabHost不适用于我在应用程序中使用的Frag

  • 我试图在片段中填充一个具有自定义布局的listView。但是,当我启动应用程序时,listview的内容没有加载(这是使用数组适配器获得的)。下面是加载listView的代码: 这里是我的CustomAdapter的代码: } 这是列表项布局的xml: 这里是主要布局: 我没有收到任何错误消息,但是当我启动应用程序时,listView中没有显示任何项目,并且永远不会调用我的适配器的getView方

  • 我一直在试图让这段代码在片段中工作。这段代码在活动中运行良好,但我无法使其在片段中工作。 当我单击一个按钮时,它会调用截屏方法。 这是屏幕截图的代码: “findViewById”由于位于片段中而无法识别。 我试过: 但它也不起作用。我得到 任何帮助都将不胜感激。

  • 我正在尝试应用抽屉激活(我的第一个片段是一张地图) 日志: 我认为这是最重要的: 这是我的代码:LoginScreen:fragmentActivity,它对片段进行所有调用 这是我的片段活动的主要布局: 这是mapfragment的xml布局: 这是mapfraps代码: 我认为问题出在简历上