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