【问题标题】:listview with fragment in androidandroid中带有片段的listview
【发布时间】:2014-02-04 09:26:42
【问题描述】:

我的 android 活动中的用户片段,当我单击无法调用新活动的列表视图项目时,我在活动中实现列表视图。 它会产生一个错误::

java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.tabsswipe/info.androidhive.tabsswipe.Order}: java.lang.NullPointerException

Java 代码:

 package info.androidhive.tabsswipe;
import info.androidhive.tabsswipe.R;
import android.app.ListFragment;
import android.content.Context;
import android.content.Intent;
import android.database.DataSetObserver;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Plywood extends Fragment{
     ListView lv1;
        String lv_arr[]={"ORDER","SELLING","SUMMARY","SETTING"};
        private FragmentActivity fa;
        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        final View rootView = inflater.inflate(R.layout.plywood, container, false);
        //addlistview(rootView);
        lv1 = (ListView)rootView.findViewById(R.id.listView1);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,lv_arr);
            lv1.setAdapter(adapter);


           lv1.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View view,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub

                    Toast.makeText(getActivity(), "position:"+arg2,Toast.LENGTH_LONG).show();
                    if(arg2==0)
                    {
                        try {
                            startActivity(new Intent(rootView.getContext(),Order.class));
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                            Toast.makeText(getActivity(), "error:"+e,Toast.LENGTH_LONG).show();
                        }
                    }
                }
            });
            return rootView;
        }



}

【问题讨论】:

  • 发布完整的堆栈跟踪
  • 尝试使用 getActivity() 代替 rootView.getContext()

标签: android listview android-listview android-fragments fragment


【解决方案1】:

除了使用rootView.getContext() 之外,还可以使用getActivity() 来启动order 活动

 startActivity(new Intent(getActivity(),Order.class));

还要确保您已在清单中注册您的活动。

【讨论】:

    【解决方案2】:

    尝试使用 getApplicationContext() 代替

     startActivity(new Intent(getApplicationContext(),Order.class));
    

    并确保 Order Activity 已经在您的应用程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      相关资源
      最近更新 更多