我看过很多关于如何更改 Android 屏幕的教程,但我无法理解/无法完成所有这些教程,有人可以帮助我完成我的项目吗?我有四个 xml 文件 所有这些都有三个按钮,但只有两个用于设置页面。我可以让应用程序加载任何其他页面(但无法建立按钮)(重要的一点)。 如有任何帮助,我们将不胜感激。
package com.store.shrek2;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
int activityloaded = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) this.findViewById(R.id.button1);
Button button2 = (Button) this.findViewById(R.id.button2);
Button button3 = (Button) this.findViewById(R.id.button3);
Button button4 = (Button) this.findViewById(R.id.button4);
Button button5 = (Button) this.findViewById(R.id.button5);
Button button6 = (Button) this.findViewById(R.id.button6);
if(activityloaded == 1){
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}});
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
activityloaded = 2;
}});
button3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
activityloaded = 4;
setContentView(R.layout.activity4);
}});
}
if(activityloaded == 2){
setContentView(R.layout.activity2);
button4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.activity3);
}});
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.store.shrek2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity2"></activity>
<activity android:name=".activity3"></activity>
<activity android:name=".activity4"></activity>
</application>
</manifest>
请按照这些说明了解如何解决您的问题。
由于您将使用主要活动来管理片段,
示例代码: MainActivity.java
public class MainActivity extends Activity implements View.OnClickListener
{
private Button mLoadFragmentOne;
private Button mLoadFragmentTwo;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLoadFragmentOne = (Button)findViewById(R.id.buttonOne);
mLoadFragmentTwo = (Button)findViewById(R.id.buttonTwo);
mLoadFragmentOne.setOnClickListener(this);
mLoadFragmentTwo.setOnClickListener(this);
}
@Override
public void onClick(View view)
{
switch(view.getId())
{
case R.id.buttonOne:
FragmentOne fragmentOne = new FragmentOne();
loadFragment(fragmentOne, "fragmentOne");
break;
case R.id.buttonTwo:
FragmentTwo fragmentTwo = new FragmentTwo();
loadFragment(fragmentTwo, "fragmentTwo");
break;
default:
break;
}
}
/**
* This fragment container will be part of the main view.
*/
public void loadFragment(Fragment frag, String tag)
{
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = getFragmentManager().findFragmentById(R.id.fragmentContainer);
if(fragment == null)
{
ft.add(R.id.fragmentContainer, frag, tag);
} else
{
ft.replace(R.id.fragmentContainer, frag, tag);
}
ft.addToBackStack(null);
ft.commit();
}
}
FragmentOne.java
public class FragmentOne extends Fragment
{
private final String TAG = "com.example.app.FragmentOne";
private Activity mActivity;
public void onAttach(Activity act)
{
super.onAttach(act);
this.mActivity = act;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_one, container, false);
//do whatever you want here - like adding a listview or anything
return view;
}
}
FragmentTwo.java
public class FragmentTwo extends Fragment
{
private final String TAG = "com.example.app.FragmentTwo";
private Activity mActivity;
@Override
public void onAttach(Activity act)
{
super.onAttach(act);
this.mActivity = act;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflator.inflate(R.layout.fragment_two, container, false);
//do whatever you want here - like set text to display in your fragment
return view;
}
}
现在,您只需使用此代码示例即可完成您的工作。
这里的重点是创建一个容器 - 一个例子是主视图中的框架布局,给它一个 id,并记住这是您的片段将被加载的地方。
您必须添加其他内容,以便用户可以轻松地在视图之间来回导航。
最后,请记住创建两个片段 xml 文件 - 它们可以包含您希望用户看到的任何内容 - 例如图像、文本和列表或网格。这是你自己的选择。
这就是我能抽出时间做的事情,希望对你有帮助。
如果您逐步按照这些说明进行操作,您应该能够解决您的问题。祝你好运。
setCoententView(int layout) 应该在所有语句之前调用,否则将不起作用.. 您有两种选择来做您想做的事: