当前位置: 首页 > 知识库问答 >
问题:

单击操作栏按钮时转到主屏幕

叶鸿
2023-03-14

我有一个图像按钮在我的应用程序中的每一个活动。当图像按钮被按下时,我需要转到主屏幕。我正在使用代码

btnLocation.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // Intent intent=new Intent(SpecificCategoryActivity.this,AreaSelectionActivity.class);

                //startActivity(intent);
                Intent homeIntent = new Intent(SpecificCategoryActivity.this, AreaSelectionActivity.class);
                homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(homeIntent);

            }
        });

但是,当我在单击图像按钮后从主屏幕导航时,它应该会从它调用的地方转到相同的页面。

例如,我有Activity1、Activity2、Activity3、Activity4等…Activity1是首页,我会选择国家,然后去Activity2,然后去Activity3,等等,但如果我从Activity4点击位置按钮,它应该去首页,在改变国家后,它必须回到Activity4。还有一件事是,如果国家已经被选中,应用程序将从Activity2启动。

我的Activity1代码是

btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if(!autoComplete.getText().toString().isEmpty()) {

                if (isSelectedText) {


                    Intent intent = new Intent(CountrySelectionActivity.this, CategoryListActvity.class);
                     startActivity(intent);


                }
                else{
                    editor.clear();
                    editor.commit(); // commit changes
                    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(CountrySelectionActivity.this);

                    alertDialogBuilder.setMessage("Please specify the correct country name");

                    AlertDialog alertDialog = alertDialogBuilder.create();
                    alertDialog.show();

                }
            }


        }
    });

请帮助解决这个问题。提前谢了。

共有1个答案

夏侯华彩
2023-03-14
I will give some pseudo code here
    In Activity4, locationbutton onclick listener will have the below code
    locationbutton .setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

       //save a variable to indicate that activity4 is reached
    savePreferences("**pagenavigated**", "4", context);  //need to write //savePreferences

     Intent intent = new Intent(activity4.this, homepage.class);
                         startActivity(intent);

        });
    //We can write this method commonly so all activity can access this
    public static void savePreferences(String key, String value, Context context) {

            SharedPreferences SharedPreferences = PreferenceManager
                    .getDefaultSharedPreferences(context);
            SharedPreferences.Editor editor = SharedPreferences.edit();
            editor.putString(key, value);
            editor.commit();
        }
    public static String loadPreferences(Context context, String key) {
            SharedPreferences SharedPreferences = PreferenceManager
                    .getDefaultSharedPreferences(context);
            String userDetails = SharedPreferences.getString(key, "");
            return userDetails;

        }
public static void removePreference(String key, Context context) {

        SharedPreferences SharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = SharedPreferences.edit();
        editor.remove(key);
        editor.commit();

    }

    public static void removeAllPreferences(Context context) {

        SharedPreferences SharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = SharedPreferences.edit();
        editor.clear();
        editor.commit();

    }
//In Activity 1, check for sharedpreference variable value and if it is 4, it //should get navigate to 4th screen . To make this happen , after checking //the value, we need to remove the shared value as well
//Activity 1
//In **country dropdown change listener**, check for the value of //**pagenavigated** and if it is 4, start the activity to go for activity 4. //Before that remove the value by using removeAllPreferences method
//So changes will be in onItemSelected
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String navigatedPage = loadPreferences(context,"pagenavigated");
if (navigatedPage.equalsIgnoreCase("4") {
removeAllPreferences(this);  //Remove the preference and go to activity 4)
Intent intent = new Intent(homepage.this, activity4.class);
                         startActivity(intent);
}



Hope that helps!!!
 类似资料:
  • 我在这件事上完全被难住了。我有一个活动C,当我试着按下后退按钮时,它工作了。但是,当我使用操作栏中的home/up按钮时,它就会崩溃(请参见下面的错误)。下面是我的代码中处理备份/备份按钮的部分。 活动C: 错误: 这是否与到达活动C有两种可能的方式有关?要么是-

  • 点击通知按钮后如何关闭状态栏? 我试过了,但有个例外: 我的代码: 在NotificationIntent类

  • 我已经实现了最新的appcompat库,并使用工具栏作为操作栏。但问题是我无法捕捉主页按钮/汉堡包图标点击事件。我试过了,看了所有的东西,但似乎没有发现类似的问题。 这是我的类: 这是我的NavigationDrawerFrament类: 当我单击菜单项时,会调用日志“item selected”。但当我点击home按钮时,它会打开导航抽屉,但从未调用“home selected”日志。我也在我的

  • 在这些Android文档的帮助下。我正在尝试做一个操作栏后退按钮。我得到一个操作栏后退按钮,如下图: 输出: 但我的问题是在看了画廊的图片后,我按下了动作栏后退按钮。 然后它不工作了。但它必须回到上一页。 下面列出了代码。 厨房活动。java: GalleryDetailFragment。java: 如果你知道如何解决这些问题,任何人都可以帮助我。谢谢你。

  • 问题内容: 我找到了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮…但是,它没有在我的PreferenceActivity中调用OnOptionsItemSelected。有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗? 在此处修改第35个帖子: http://code.google.com/p/android/issue

  • 我有一个servlet java文件。这是我的代码: 3个文本输入和一个按钮。java servlet创建HTML,我需要读取3个输入的内容,当按下按钮时,我需要调用一个以3个输入为参数的函数。 谢谢你的帮助。 编辑:代码测试: