Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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
Java 如何在片段活动(扩展片段)下填充自定义列表视图_Java_Android_Android Fragments_Android Studio - Fatal编程技术网

Java 如何在片段活动(扩展片段)下填充自定义列表视图

Java 如何在片段活动(扩展片段)下填充自定义列表视图,java,android,android-fragments,android-studio,Java,Android,Android Fragments,Android Studio,我想在Fragment活动下添加一些项目的简单列表视图,该活动正在扩展Fragment,但不是listframent 这是我的密码: public class ProductListFragment extends Fragment { String[] ibizzproducts= { "Attendance", "GPS", "CCTV" "Web

我想在
Fragment
活动下添加一些项目的简单列表视图,该活动正在扩展
Fragment
,但不是
listframent

这是我的密码:

public class ProductListFragment extends Fragment {

String[] ibizzproducts=
        {
                "Attendance",
                "GPS",
                "CCTV"
                "Website"
                "Application"

        };

ListView listView;


public static ProductListFragment newInstance(int sectionNumber) {
    ProductListFragment fragment = new ProductListFragment();
    Bundle args = new Bundle();
    args.putInt(Constants.ARG_SECTION_NUMBER, sectionNumber);
    fragment.setArguments(args);
    return fragment;
}

public ProductListFragment() {
    // Required empty public constructor
}

     @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {

     List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

     for(int i=0;i < ibizzproducts.length;i++){
    HashMap<String, String> hm = new HashMap<String,String>();
    hm.put("txt", "Products Here : " + ibizzproducts[i]);

    aList.add(hm);
   }

   String[] from = { "Products Here" };

int[] to = { R.id.listView1};

View v = inflater.inflate(R.layout.fragment_product_list, container, false);

 // ListView list = (ListView)v.findViewById(R.id.listView1);

  listView = (ListView)v.findViewById(R.id.listView1);

   SimpleAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), aList, R.layout.fragment_product_list, from, to);

   listView.setAdapter(adapter);
    return v;
我只想添加简单的
列表视图
,这样如果我从导航抽屉中选择
产品
,它就会显示这个简单的产品项目列表

请帮我做这个。 谢谢

这样更好:

for(int i = 0; i < ibizzproducts.length; i++) {
    HashMap<String, String> hm = new HashMap<String,String>();
    hm.put("txt", "Products Here : " + ibizzproducts[i]);
    aList.add(hm);
}
for(int i=0;i
这样更好:

for(int i = 0; i < ibizzproducts.length; i++) {
    HashMap<String, String> hm = new HashMap<String,String>();
    hm.put("txt", "Products Here : " + ibizzproducts[i]);
    aList.add(hm);
}
for(int i=0;i
listView.setAdapter(适配器)更改代码
列表。设置适配器(适配器)


在执行复制粘贴时睁大眼睛

listView.setAdapter(适配器)更改代码
列表。设置适配器(适配器)

进行复制粘贴时请睁大眼睛

此处:

listView.setAdapter(adapter);
listView
对象为
null
,因为
getActivity()。findViewById
用于从
fragment\u product\u列表
布局访问listView,该布局是fragment的布局

由于ListView的
list
对象是从
fragment\u product\u list
初始化的,该列表是从
onCreateView
方法返回的,因此将其用于
setAdapter
ListView

list.setAdapter(adapter);
在这里:

listView
对象为
null
,因为
getActivity()。findViewById
用于从
fragment\u product\u列表
布局访问listView,该布局是fragment的布局

由于ListView的
list
对象是从
fragment\u product\u list
初始化的,该列表是从
onCreateView
方法返回的,因此将其用于
setAdapter
ListView

list.setAdapter(adapter);

我希望它能帮助你

公共类FragmentShowAll扩展片段{

ListView listViewMsg;
ArrayList<String> array_list=new ArrayList<>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_fragment_all, container, false);

       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");

    listViewMsg = (ListView) v.findViewById(R.id.listViewMsg);
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,array_list);
    listViewMsg.setAdapter(adapter);

    listViewMsg.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//on click action
        }
    });//listview on click

    return v;
}    
ListView listViewMsg;
ArrayList数组_list=新建ArrayList();
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.fragment\u fragment\u all,容器,假);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
listViewMsg=(ListView)v.findViewById(R.id.listViewMsg);
ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,array\u list);
listViewMsg.setAdapter(适配器);
listViewMsg.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//点击操作
}
});//单击时查看列表
返回v;
}    

}我希望它能帮助你

公共类FragmentShowAll扩展片段{

ListView listViewMsg;
ArrayList<String> array_list=new ArrayList<>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_fragment_all, container, false);

       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");
       array_list.add("hello");

    listViewMsg = (ListView) v.findViewById(R.id.listViewMsg);
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,array_list);
    listViewMsg.setAdapter(adapter);

    listViewMsg.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//on click action
        }
    });//listview on click

    return v;
}    
ListView listViewMsg;
ArrayList数组_list=新建ArrayList();
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.fragment\u fragment\u all,容器,假);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
数组_list.add(“hello”);
listViewMsg=(ListView)v.findViewById(R.id.listViewMsg);
ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,array\u list);
listViewMsg.setAdapter(适配器);
listViewMsg.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//点击操作
}
});//单击时查看列表
返回v;
}    


}
ibizzproducts
数组只包含3个项,但是
for loop
执行直到
i==9
这就是为什么获取
ArrayIndexOutboundsException
哦,这是我的错误,我纠正了它。但现在它给了我空指针异常,并指向这一行“listView.setAdapter(adapter);”如果要迭代任何数组,请不要对循环中的大小使用局部变量。发布适配器class@GauravSetia:这是另一个问题,请参阅我的答案和其他答案,这些答案将告诉您获取NPE的原因。
ibizzproducts
数组仅包含3项,但
for loop
执行直到
i==9
这就是获取NPE的原因
ArrayIndexOutOfBoundsException
噢,是我的错,我纠正了。但现在它给了我空指针异常,并指向这一行“listView.setAdapter(adapter);”,如果要迭代任何数组,请不要在循环中使用局部变量作为大小。发布适配器class@GauravSetia:这是另一个问题,请参阅我的和其他答案,这些答案将告诉你为什么要获得NPE。我只是编辑了我的错误,请再次检查回答此问题的人。@GauravSetia:Remove
listView=(listView)getActivity().findViewById(R.id.listView1)行和更改<代码>列表视图列表=(列表视图)v.findViewById(R.id.listView1)到<代码>列表视图=(列表视图)v.findViewById(R.id.listView1)我按照你的建议更改:现在,它给了我一个错误:“IllegalStateException:android.widget.ListView不是一个可以被这个SimpleAdapter限制的视图”@ρяσѕρєя K@GauravSetia:不可能,请共享最新代码和错误@ρцσѕρєK:请签入注释,我已共享了我的代码和部分LogI,请编辑我的错误,请再次查看回答者。@GauravSetia:Remove
listView=(listView)getActivity().findViewById(R.id.listView1)行和更改<代码>列表视图列表=(列表视图)v.findViewById(R