Java 在Android编程中使用Fragment

Java 在Android编程中使用Fragment,java,android,Java,Android,我在练习android应用程序开发,观看Youtube视频。 除进口零件外,以下代码与讲师编码的结果完全相同。 即使代码相同,我的代码也有4个错误(这就是为什么我添加了一些导入部分;;) 您能看一下并教我如何修复它们吗? 我在这里看到了类似的问题,但他们的解决方案并不有效 我得到了“activity_input.xml”来显示按钮和片段。 下面的代码是关于“InputActivity.java”的。 片段的三个xml和java文件。 它们是“Fragment1.java”、“Fragment2.

我在练习android应用程序开发,观看Youtube视频。 除进口零件外,以下代码与讲师编码的结果完全相同。 即使代码相同,我的代码也有4个错误(这就是为什么我添加了一些导入部分;;)


您能看一下并教我如何修复它们吗? 我在这里看到了类似的问题,但他们的解决方案并不有效

我得到了“activity_input.xml”来显示按钮和片段。 下面的代码是关于“InputActivity.java”的。 片段的三个xml和java文件。 它们是“Fragment1.java”、“Fragment2.java”、“StartFragment.java”、“Fragment1.xml”、“Fragment2.xml”、“start_fragment.xml”

两个按钮的id分别为“btn1”、“btn2” 将显示片段的布局id为“myFragment”


使用此代码并在eclipse中正确组织导入,使用control+shift+o并正确选择

import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.app.Activity;

public class InputActivity extends Activity {

    Fragment fragment;
    Button btn1, btn2, btn3;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.to_do_list);
        btn1=(Button)findViewById(R.id.btn1);
        btn2=(Button)findViewById(R.id.btn2);

        android.app.FragmentManager fm = getFragmentManager(); 
        android.app.FragmentTransaction ft = fm.beginTransaction();

        StartFragment myFragment = new StartFragment();
        ft.add(myFragment,R.id.myFragment);  
        ft.commit();

        btn1.setOnClickListener(btnOnClickListener);
        btn2.setOnClickListener(btnOnClickListener);

    }

    Button.OnClickListener btnOnClickListener = new Button.OnClickListener() {
        @Override
        public void onClick(View v) {

            Fragment newFragment;

            if (v == btn1)
                newFragment = new Fragment1();
            else if (v == btn2)
                newFragment = new Fragment2();
            else
                newFragment = new StartFragment();

            android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(R.id.myFragment, newFragment);
            transaction.addToBackStack(null);
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.commit();

        } 
    };
}

“你能看看它,教我怎么修理吗?”--不,这不是它的工作原理。你开始。。。如果你自己不能解决这个问题,你可能不会走得太远。这些是您需要学习的基本技能,因此您不会在每次编写一行代码时感到沮丧。除此之外,您还没有提供足够的信息。对不起,我将进一步调查;;为什么不分别查看四个错误中的每一个并专门搜索该错误消息呢。谷歌等拥有丰富的信息。事实上,您甚至还没有识别出您遇到的四个错误,也没有包含所有的代码,所以任何人都无法帮助您。我认为错误已经通过我的答案解决了,您为什么要保留这个问题。这个问题;;3个错误消失了。add上有一个错误(错误2),错误代码是“FragmentTransaction类型中的方法add(int,Fragment)不适用于参数(StartFragment,int)”
import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.app.Activity;

public class InputActivity extends Activity {

    Fragment fragment;
    Button btn1, btn2, btn3;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.to_do_list);
        btn1=(Button)findViewById(R.id.btn1);
        btn2=(Button)findViewById(R.id.btn2);

        android.app.FragmentManager fm = getFragmentManager(); 
        android.app.FragmentTransaction ft = fm.beginTransaction();

        StartFragment myFragment = new StartFragment();
        ft.add(myFragment,R.id.myFragment);  
        ft.commit();

        btn1.setOnClickListener(btnOnClickListener);
        btn2.setOnClickListener(btnOnClickListener);

    }

    Button.OnClickListener btnOnClickListener = new Button.OnClickListener() {
        @Override
        public void onClick(View v) {

            Fragment newFragment;

            if (v == btn1)
                newFragment = new Fragment1();
            else if (v == btn2)
                newFragment = new Fragment2();
            else
                newFragment = new StartFragment();

            android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(R.id.myFragment, newFragment);
            transaction.addToBackStack(null);
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.commit();

        } 
    };
}