Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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-如何将代码活动转换为代码片段?_Android_Android Activity_Android Fragments - Fatal编程技术网

Android-如何将代码活动转换为代码片段?

Android-如何将代码活动转换为代码片段?,android,android-activity,android-fragments,Android,Android Activity,Android Fragments,我无法将我的活动分解成碎片。我寻找了几种方法来实现这一点,但即便如此,我还是感到困惑 我知道,有很多代码。我希望你能帮助我 显示了我需要的内容,但当执行按钮的操作时,会出现以下错误 E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NullPointerException at ..TaskFragment.onActivityCreated(TaskFragment.java:29) at ..TaskFragm

我无法将我的活动分解成碎片。我寻找了几种方法来实现这一点,但即便如此,我还是感到困惑

我知道,有很多代码。我希望你能帮助我

显示了我需要的内容,但当执行按钮的操作时,会出现以下错误

E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at ..TaskFragment.onActivityCreated(TaskFragment.java:29)
        at ..TaskFragment.onCreateView(TaskFragment.java:37)
活动课。。它起作用了

 public class TaskActivity extends Activity {


TareaAdapter adapter;
ListView lvTask;
ArrayList<Task> listTask;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_tareas);
    lvTask =(ListView)findViewById(R.id.lvTareas);
    lvTask.setDividerHeight(1);
    listTask =new ArrayList<Task>();
}

@Override
protected void onResume()
{
    if(listTask.size()==0){
        populateList();
    }
    super.onResume();
}

public Task getTask(int level, int haschild){
    Task task =new Task();
    task.nombre ="Nombre Tarea";
    task.isAbierto =false;
    task.nivel =level;
    task.tieneHijo = haschild;
    return task;
}
public void populateList()
{
    try
    {
        for(int i=0;i<2;i++){
            listTask.add(getTask(0, 1));
        }
        adapter = new TareaAdapter(TaskActivity.this, listTask);
        lvTask.setAdapter(adapter);
    }
    catch (Exception e)
    {

    }
}
public void CellButtonClick(View v){
    try{
        Button b=(Button)v;
        int index;
        index=(Integer) b.getTag();

        if(b.getText().toString().equals("+")){
            b.setText("-");
            Task temp[]=new Task[2];
            int PLevel= listTask.get(index).nivel +1;
            for(int i=0;i<2;i++){
                temp[i]= getTask(PLevel, 1);
            }
            listTask.get(index).isAbierto =true;
            if(temp!=null){
                int addindex=index+1;
                for(int i=0;i<temp.length;i++){
                    listTask.add(addindex, temp[i]);
                    addindex++;
                }
            }
            temp=null;
        }
        else{
            b.setText("+");
            listTask.get(index).isAbierto =false;
            int removeindex=index+1;
            for(int i=0;i<2;i++){
                if(listTask.get(removeindex).isAbierto){
                    removeChilds(removeindex);
                }
                listTask.remove(removeindex);
            }
        }
        adapter.notifyDataSetChanged();
    }
    catch(Exception e){
        adapter.notifyDataSetChanged();

    }
}
public void removeChilds(int index){
    try {
        int removeindex=index+1;
        for(int i=0;i<2;i++){
            if(listTask.get(removeindex).isAbierto){
                removeChilds(removeindex);
            }
            listTask.remove(removeindex);
        }
    } catch (Exception e) {
        // TODO: handle exception

    }
}
公共类TaskActivity扩展活动{
跗骨适配器;
ListView任务;
数组列表任务;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_tareas);
lvTask=(ListView)findViewById(R.id.lvTareas);
lvTask.setDividerHeight(1);
listTask=newArrayList();
}
@凌驾
受保护的void onResume()
{
if(listTask.size()==0){
大众主义者();
}
super.onResume();
}
公共任务getTask(int级别,int haschild){
任务=新任务();
task.nombre=“nombre Tarea”;
task.isAbierto=false;
task.nivel=级别;
task.tieneHijo=haschild;
返回任务;
}
公共无效公共列表()
{
尝试
{

对于(int i=0;i将这三行放在创建视图的
中(并删除创建的活动视图的
中的相应行)

lvTask=(ListView)viewRoot.findviewbyd(R.id.lvTareas);
lvTask.setDividerHeight(1);
listTask=newArrayList();

感谢您的回答!。当我将这三行放在onCreateView中时,应用程序崩溃了。但是,正如我所做的那样,通过单击发布新崩溃的日志猫,显示并崩溃了片段。如果没有问题,我错了。但是我无法单击并显示信息。当我运行应用程序时,会显示此错误
E/AndrOID运行时﹕ 致命异常:main java.lang.IllegalStateException:在活动类中找不到方法CellButtonClick(View)…在android.View.View.performClick(View.java:3480)的视图类android.widget.Button上id为“btnExpandirTarea”的onClick处理程序的Inicio
此内部类中未定义CellButtonClick(视图)的方法定义。您可以扩展OnClickListener类并添加定义,或者将CellButtonClick的逻辑放入onClick方法中。
TareaAdapter adapter;
ListView lvTask;
ArrayList<Task> listTask;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    lvTask =(ListView) getView().findViewById(R.id.lvTareas);
    lvTask.setDividerHeight(1);
    listTask =new ArrayList<Task>();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    View viewRoot =  inflater.inflate(R.layout.fragment_tareas, container, false);
    Button btnExpandir = (Button) viewRoot.findViewById(R.id.btnExpandirTarea);
    btnExpandir.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CellButtonClick(v);
        }
    });
    return viewRoot;
}

@Override
public void onResume()
{
    if(listTask.size()==0){
        populateList();
    }
    super.onResume();
}

public Task getTask(int level, int haschild){
    Task task =new Task();
    task.nombre ="Nombre Tarea";
    task.isAbierto =false;
    task.nivel =level;
    task.tieneHijo = haschild;
    return task;
}
public void populateList()
{
    try
    {
        for(int i=0;i<2;i++){
            listTask.add(getTask(0, 1));
        }
        adapter = new TareaAdapter(getActivity(), listTask);
        lvTask.setAdapter(adapter);
    }
    catch (Exception e)
    {

    }
}
public void CellButtonClick(View v){
    try{
        Button b=(Button)v;
        int index;
        index=(Integer) b.getTag();

        if(b.getText().toString().equals("+")){
            b.setText("-");
            Task temp[]=new Task[2];
            int PLevel= listTask.get(index).nivel +1;
            for(int i=0;i<2;i++){
                temp[i]= getTask(PLevel, 1);
            }
            listTask.get(index).isAbierto =true;
            if(temp!=null){
                int addindex=index+1;
                for(int i=0;i<temp.length;i++){
                    listTask.add(addindex, temp[i]);
                    addindex++;
                }
            }
            temp=null;
        }
        else{
            b.setText("+");
            listTask.get(index).isAbierto =false;
            int removeindex=index+1;
            for(int i=0;i<2;i++){
                if(listTask.get(removeindex).isAbierto){
                    removeChilds(removeindex);
                }
                listTask.remove(removeindex);
            }
        }
        adapter.notifyDataSetChanged();
    }
    catch(Exception e){
        adapter.notifyDataSetChanged();

    }
}
public void removeChilds(int index){
    try {
        int removeindex=index+1;
        for(int i=0;i<2;i++){
            if(listTask.get(removeindex).isAbierto){
                removeChilds(removeindex);
            }
            listTask.remove(removeindex);
        }
    } catch (Exception e) {
        // TODO: handle exception

    }
}
lvTask =(ListView) viewRoot.findViewById(R.id.lvTareas);
lvTask.setDividerHeight(1);
listTask =new ArrayList<Task>();