Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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 填充不在当前布局中的Listview_Java_Android_Listview_Android Listview - Fatal编程技术网

Java 填充不在当前布局中的Listview

Java 填充不在当前布局中的Listview,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我使用的是流行的滑动菜单库,其中只有一个列表视图。所以我尝试使用一个数组适配器来填充我拥有的ArrayList,但它给了我一个NullPointer异常。所以我有一种直觉,我应该尝试用listview将活动的布局设置为布局,果然,它起了作用。但这并不能解决我的问题,因为我需要抽屉中的listview。有人能帮忙吗 package josh.hutchins.frcmatchscouter2014; import java.util.ArrayList; import com.jeremyfe

我使用的是流行的滑动菜单库,其中只有一个列表视图。所以我尝试使用一个数组适配器来填充我拥有的ArrayList,但它给了我一个NullPointer异常。所以我有一种直觉,我应该尝试用listview将活动的布局设置为布局,果然,它起了作用。但这并不能解决我的问题,因为我需要抽屉中的listview。有人能帮忙吗

package josh.hutchins.frcmatchscouter2014;

import java.util.ArrayList;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

    BlueAllianceHandler bah = new BlueAllianceHandler("sc");
    FileIoHandler fih = new FileIoHandler(/*maybe pass in folder path here?*/);

    ArrayList<String> testTeams = new ArrayList<String>();

     ListView drawerListView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        drawerListView = (ListView) findViewById(R.id.drawerListView);


       setupSlidingMenu();
       //Toast.makeText(this, bah.pullData(), Toast.LENGTH_LONG).show();
       pullTeamData();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }



    void setupSlidingMenu(){
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menu.setMenu(R.layout.menu);
    }

    void pullTeamData(){
        //JUST FOR TESTING PURPOSES
        testTeams.add("2655");
        testTeams.add("1533");
        testTeams.add("900");
        testTeams.add("4451");
        testTeams.add("2200");
        testTeams.add("3301");
        testTeams.add("2059");
        testTeams.add("5010");
        testTeams.add("1747");
        testTeams.add("2641");
        testTeams.add("4231");

        fih.createTeamRecords(testTeams);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                this, 
                android.R.layout.simple_list_item_1,
                testTeams );

        drawerListView.setAdapter(arrayAdapter);
    }
}
包josh.hutchins.frcmachscouter2014;
导入java.util.ArrayList;
导入com.jeremyfeinstein.slidingmenu.lib.slidingmenu;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
BlueAllianceHandler bah=新的BlueAllianceHandler(“sc”);
FileIoHandler fih=newfileiohandler(/*可能在此处传入文件夹路径?*/);
ArrayList testTeams=新的ArrayList();
列表视图抽屉列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
抽屉列表视图=(列表视图)findViewById(R.id.抽屉列表视图);
设置滑动菜单();
//Toast.makeText(this,bah.pullData(),Toast.LENGTH_LONG.show();
pullTeamData();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
无效设置滑动菜单(){
滑动菜单=新的滑动菜单(本);
菜单.设置模式(滑动菜单.左);
上面的menu.SetTouchMode(滑动菜单.TOUCHMODE\u全屏);
菜单.设置阴影宽度(R.尺寸.阴影宽度);
menu.setShadowDrawable(R.drawable.shadow);
menu.setBehindOffsetRes(R.尺寸滑动menu\U偏移);
菜单。设置FADEGREE(0.35f);
menu.attachToActivity(这是滑动菜单.滑动内容);
菜单.setMenu(R.layout.menu);
}
void pullTeamData(){
//只是为了测试的目的
添加(“2655”);
添加(“1533”);
添加(“900”);
添加(“4451”);
添加(“2200”);
添加(“3301”);
添加(“2059”);
添加(“5010”);
添加(“1747”);
添加(“2641”);
添加(“4231”);
fih.createTeamRecords(测试团队);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
这
android.R.layout.simple\u list\u item\u 1,
测试小组);
drawerListView.setAdapter(arrayAdapter);
}
}

只需遵循以下步骤:

1.在MainActivity中扩展SlidingFragmentActivity,而不仅仅是Activity

2.在布局文件夹中制作两个FrameLayout类型的布局,如下所示

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" /> 
  • 现在为左菜单设计布局,只需在线性布局中包含一个列表视图,并将布局命名为左菜单

  • 制作一个名为MenuFragment的片段,扩展fragment类,在onCreateView方法中,设置菜单列表视图,如下所示

        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View v=inflater.inflate(R.layout.left_menu, container, false);
    lv=(ListView)v.findViewById(R.id.menuListView);
    iv=(ImageView)v.findViewById(R.id.imageMenuProfile);
    tv=(TextView)v.findViewById(R.id.textViewProfileName);
    LeftMenuAdapter adap=new LeftMenuAdapter(getActivity(), list);
    //lv.setAdapter(new ArrayAdapter<String>(getActivity().getApplicationContext(),R.layout.ledt_en_row,R.id.textList,new String[] {"H","R","S","B","C","W"}));
    lv.setAdapter(adap);
    lv.setOnItemClickListener(new MenuListListener());
    
    return v;
    } 
    
    @覆盖
    创建视图上的公共视图(布局、充气机、视图组容器、,
    Bundle savedInstanceState){
    //TODO自动生成的方法存根
    视图v=充气机。充气(R.layout.left_菜单,容器,错误);
    lv=(ListView)v.findViewById(R.id.menuListView);
    iv=(ImageView)v.findViewById(R.id.ImageMenupFile);
    tv=(TextView)v.findViewById(R.id.textViewProfileName);
    LeftMenuAdapter adap=新的LeftMenuAdapter(getActivity(),list);
    //setAdapter(新的ArrayAdapter(getActivity().getApplicationContext(),R.layout.ledt_en_行,R.id.textList,新字符串[]{“H”,“R”,“S”,“B”,“C”,“W”});
    低压设置适配器(adap);
    lv.setOnItemClickListener(新的MenuListListener());
    返回v;
    } 
    

  • 我已经实现了相同的库,以这种方式实现,工作完美,希望它也能为您实现:)。。。祝你好运。

    你在哪里得到NPE?@zgc7009对不起。。。应该包括这一点。最后:drawerListView.setAdapter(arrayAdapter);刚刚测试过,我没有发现任何错误。。。
        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View v=inflater.inflate(R.layout.left_menu, container, false);
    lv=(ListView)v.findViewById(R.id.menuListView);
    iv=(ImageView)v.findViewById(R.id.imageMenuProfile);
    tv=(TextView)v.findViewById(R.id.textViewProfileName);
    LeftMenuAdapter adap=new LeftMenuAdapter(getActivity(), list);
    //lv.setAdapter(new ArrayAdapter<String>(getActivity().getApplicationContext(),R.layout.ledt_en_row,R.id.textList,new String[] {"H","R","S","B","C","W"}));
    lv.setAdapter(adap);
    lv.setOnItemClickListener(new MenuListListener());
    
    return v;
    }