Java 如何在安卓系统中点击主页图标

Java 如何在安卓系统中点击主页图标,java,android,xml,android-fragments,Java,Android,Xml,Android Fragments,我有一个带有单个活动的测试应用程序,who's layout有一个FrameLayout。有两个片段,MainDisplay.java在应用程序启动时以编程方式加载,而AccountSetup.java则在用户单击菜单并选择AccountSetup时加载。当前,当用户进入帐户设置时,AccountSetup.java会将菜单更改为菜单_secondary.xml,该菜单具有一个主项,用布局中的起始片段替换片段。我已经找到了如何添加一个“您需要替换 if (id == R.id.home) {

我有一个带有单个活动的测试应用程序,who's layout有一个
FrameLayout
。有两个片段,MainDisplay.java在应用程序启动时以编程方式加载,而AccountSetup.java则在用户单击菜单并选择AccountSetup时加载。当前,当用户进入帐户设置时,AccountSetup.java会将菜单更改为菜单_secondary.xml,该菜单具有一个主项,用布局中的起始片段替换片段。我已经找到了如何添加一个“您需要替换

if (id == R.id.home) {
   System.out.println("Up button pressed");
 }

请点击此链接,并进行相应更改

 if (id == android.R.id.home) {

    System.out.println("Up button pressed");
  }
请使用此方法并在
onCreate()中调用此方法

package "";

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class AccountSetup extends Fragment {
    MiddleMan mCallBack;

    @Override
    public void onAttach(Activity activity){
        super.onAttach(activity);
        try {
            mCallBack = (MiddleMan) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement ReqestConnect");
        }

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.account_setup, container, false);
        mCallBack.DisplayHome();

        setHasOptionsMenu(true);

        return view;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.clear();
        inflater.inflate(R.menu.menu_secondary, menu);
        super.onCreateOptionsMenu(menu,inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_main_display) {
            MainDisplay f = new MainDisplay();
            mCallBack.ShiftView(f);
            return true;
        }
        if (id == R.id.home) {
            System.out.println("Up button pressed, from setup");
        }

        return super.onOptionsItemSelected(item);
    }
}
package "";

public interface MiddleMan {
    void ShiftView(Object obj);
    void DisplayHome();
    void RemoveHome();
if (id == R.id.homeAsUp) {
            System.out.println("Up button pressed, from setup");
        }
package "";

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity implements MiddleMan {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (findViewById(R.id.activity_main_framelayout) != null) {
            if(savedInstanceState != null) {
                return;
            }
            MainDisplay f = new MainDisplay();
            ShiftView(f);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_account_setup) {
            AccountSetup f = new AccountSetup();
            ShiftView(f);
            return true;
        }
        if (id == android.R.id.home) {
            MainDisplay f = new MainDisplay();
            ShiftView(f);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void ShiftView(Object obj) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.activity_main_framelayout, (Fragment) obj);
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        ft.addToBackStack(null);
        ft.commit();
    }

    @Override
    public void DisplayHome(){
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public void RemoveHome() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(false);
    }
}
package "";

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class AccountSetup extends Fragment {
    MiddleMan mCallBack;

    @Override
    public void onAttach(Activity activity){
        super.onAttach(activity);
        try {
            mCallBack = (MiddleMan) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement ReqestConnect");
        }

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.account_setup, container, false);
        mCallBack.DisplayHome();

        //setHasOptionsMenu(true);

        return view;
    }

    /*@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.clear();
        inflater.inflate(R.menu.menu_secondary, menu);
        super.onCreateOptionsMenu(menu,inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_main_display) {
            MainDisplay f = new MainDisplay();
            mCallBack.ShiftView(f);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }*/
}
if (id == R.id.home) {
   System.out.println("Up button pressed");
 }
  if (id == android.R.id.home) {
     System.out.println("Up button pressed");
  }
 if (id == android.R.id.home) {

    System.out.println("Up button pressed");
  }
 private void actionBarSet() {
    actionBar = getActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);
}
@Override
 public boolean onMenuItemSelected(int featureId, MenuItem item) {

int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
    toggle();

    // Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show();
    break;

}
return true;
}