import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Fregment extends AppCompatActivity {
Button btn,btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fr;
fr=new page1();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.frame, fr);
ft.commit();
Toast.makeText(getApplicationContext(),"Previous",Toast.LENGTH_LONG).show();
}
});
btn2=(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fr;
fr=new page2();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.frame, fr);
ft.commit();
Toast.makeText(getApplicationContext(),"Next",Toast.LENGTH_LONG).show();
}
});
}
}
这是我的java代码 在xml中
<fragment
android:name="in.solutiontech.example19clock.page1"
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我想将我的片段从第1页更改为第2页。如果我不让这个行应用程序不运行,也创建了第一页和第二页 机器人:名字= “in.solutiontech.example19clock.page1” 如果我给它片段不会改变运行时间
答案 0 :(得分:1)
您应该将标签名称“fragment”更改为&#34; Framelayout&#34;在您的XML文件中。因为方法的第一个参数&#34; replace()&#34;是布局容器的viewid
答案 1 :(得分:1)
如果您使用的是API&lt;,则必须使用getSupportFragmentManager()而不是getFragmentManager()。 14。
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Fregment extends AppCompatActivity {
Button btn,btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fr;
fr=new page1();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.frame, fr);
ft.commit();
Toast.makeText(getApplicationContext(),"Previous",Toast.LENGTH_LONG).show();
}
});
btn2=(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fr;
fr=new page2();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.frame, fr);
ft.commit();
Toast.makeText(getApplicationContext(),"Next",Toast.LENGTH_LONG).show();
}
});
}
}
在XML文件中,您需要使用FrameLayout而不是Fragment,因为您不能只替换活动中静态创建的片段。
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
进行这些更改,您的代码应该可以正常运行。
答案 2 :(得分:0)
将框架作为FrameLayout或RelativeLayout,我建议您使用
getSupportFragmentManager()
而不是
getFragmentManager();
希望这有帮助。