- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在应用程序中提供适当的后退导航系统。我列出了应用程序中加载的 Activity 。当我按回它会检查列表并加载列表顶部的 Activity 并从 LIST 中删除元素然后有一个名为 last_id 的变量名称跟踪应用程序中加载的最后一个 ID 如果应用程序中加载了相同的 Activity ,然后它不会添加到 LIST 中。但它不起作用,当我在应用程序中加载相同的 Activity 时,它会记录它并在我按下相同次数后退出。例如:- 如果我在主 Activity 上按下按钮,再次加载 MainActivity 6 次,然后应用程序在按下退出按钮 12 次(一个 Activity 2 次)后退出。但我不想要这个我想要我按下按钮 6 次它不会添加到列表中并在按下退出按钮 2 次(正常退出)后退出。代码为主要 Activity
package com.example.gaurav.phone_get;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public ImageButton getS;
other_parts op;
private Button b;
static int counter=0;
protected static final int MAIN_ACT_CODE=102;
private boolean exit = false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getS =(ImageButton) findViewById(R.id.getS);
op = new other_parts(getApplicationContext());
op.getID(MAIN_ACT_CODE);//calls 1st time otherparts
b=(Button)findViewById(R.id.Main);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ActivityInfo vxd = new ActivityInfo();
//Toast.makeText(MainActivity.this, ""+vxd, Toast.LENGTH_SHORT).show();
++counter;
b.setText(String.valueOf(counter));
Intent i= new Intent(MainActivity.this,MainActivity.class);
startActivity(i);
Log.d("counter ","Increasing the counter ");
}
});
}
public void getStart(View v)
{
load_frag();
}
@Override
public void onBackPressed() {
if(exit)
{
super.onBackPressed();
finish();
return;
}
else
{
if(op.loadback_Activity())
{
this.exit=true;
Log.d("if","*****************in the if condition***********");
}
else {
this.exit = true;
Toast.makeText(this, "Press Again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
exit = false;
}
}, 5000);
}
}
}
@Override
protected void onResume() {
super.onResume();
op = new other_parts(getApplicationContext());
}
@Override
protected void onPause() {
super.onPause();
op = new other_parts(getApplicationContext());
}
@Override
protected void onRestart() {
super.onRestart();
op = new other_parts(getApplicationContext());
}
public void load_frag()
{
getS.setVisibility(View.GONE);
counter_class counterClass = new counter_class();
FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.frame1, counterClass);
ft.addToBackStack(null);
ft.commit();
}
}
counter_class.java 的代码
包 com.example.gaurav.phone_get;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class counter_class extends Fragment {
protected static final int COUNTER_CLASS_CODE=104;
Button b;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v;
other_parts other_parts= new other_parts(getContext());
v= inflater.inflate(R.layout.counter_layout,container,false);
other_parts.getID(counter_class.COUNTER_CLASS_CODE);
return v;
}
}
other_parts.java 的代码
包 com.example.gaurav.phone_get;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
public class other_parts {
Context ctx;
static boolean status =false;
other_parts(Context ctx)
{
this.ctx= ctx;
}
private static int id=0;
static int i=0;
public static int last_id=0;
public static List<Integer>curr_act_code =new ArrayList<Integer>();
public void getID(int id)
{
this.id=id;
push_in_current(id);
}
public void push_in_current(int q)
{
if(curr_act_code.isEmpty()) {
Log.d("Empty ","Empty string");
if (last_id == q) {
Log.d("return this", "Returning back");
} else {
curr_act_code.add(q);
last_id = q;
Log.d("Adding","Adding first time");
}
}
else
{
int x= curr_act_code.get(curr_act_code.size()-1);
last_id=x;
if(last_id==id)
{
Log.d("2nd time","..........Returning second time ...........");
}
else
{
curr_act_code.add(q);
last_id=q;
Log.d("Adding ", "Adding second time");
Log.d("current_code_value","current_code_value"+String.valueOf(curr_act_code));
Log.d("lst_id","Last id value"+String.valueOf(last_id));
}
}
Log.d("cuurent's code","..............."+String.valueOf(curr_act_code)+"...........");
}
public boolean loadback_Activity(){
if(!curr_act_code.isEmpty())
{
Log.d("Before deletion", String.valueOf(curr_act_code));
status = true;
int x = curr_act_code.get(curr_act_code.size() - 1);//finds values
int k = curr_act_code.size()-1;//finds index
curr_act_code.remove(k);
Log.d("After deletion",String.valueOf(curr_act_code));
if(curr_act_code.isEmpty()) {
status=false;
}
else
{
Log.d("search activity","Initating the search");
search_activity(x);
}
}
else
{
status =false;
Log.d("false","in the last else");
}
return status;
}
public void search_activity(int x)
{
Log.d("Search ","in the Search");
if(x==102)
{
Intent i= new Intent(ctx,MainActivity.class);
ctx.startActivity(i);
}
else if(x ==104)
{
MainActivity m = new MainActivity();
m.load_frag();
}
}
}
XML 文件是:-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout android:id="@+id/frame1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageButton
android:layout_width="64dp"
android:layout_height="66dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:onClick="getStart"
android:id="@+id/getS"
android:layout_marginStart="169dp"
android:layout_marginTop="180dp"
android:background="@drawable/round_button"
android:src="@drawable/counter" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Main"/>
</RelativeLayout>
谁能帮帮我......
最佳答案
要在 android 应用程序中提供适当的导航机制,您不需要自己编写代码,因为 android Activities
是在 Stack 中维护的,您只需要实现 ActionBar
和 setDisplayHomeAsUpEnabled(true)
正确地让那个东西工作。
在这里按照官方文档:https://developer.android.com/training/appbar/
但在您开始实现ActionBar
之前,首先了解BackStack 以及android 如何维护它:https://developer.android.com/guide/components/activities/tasks-and-back-stack
关于android - 想在我的应用程序中提供适当的导航系统..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53595940/
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我有以下问题:在操作系统是 Linux 的情况下和在操作系统是 MacOs 的情况下,我必须执行不同的操作。 所以我创建了以下 Ant 脚本目标: /u
我正在调用 system("bash ../tools/bashScript\"This is an argument!\"&"),然后我正在调用 close(socketFD) 直接在 system
使用最初生成的随机元素来约束随机数组的连续元素是否有效。 例如:我想生成一组 10 个 addr、size 对来模拟典型的内存分配例程并具有如下类: class abc; rand bit[5:0
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
我即将编写一些项目经理、开发人员和业务分析师会使用的标准/指南和模板。目标是更好地理解正在开发或已经开发的解决方案。 其中一部分是提供有关记录解决方案的标准/指南。例如。记录解决/满足业务案例/用户需
在开发使用压缩磁盘索引或磁盘文件的应用程序时,其中部分索引或文件被重复访问(为了论证,让我们说一些类似于 Zipfian 分布的东西),我想知道什么时候足够/更好地依赖操作系统级缓存(例如,Debia
我们编写了一个 powershell 脚本,用于处理来自内部系统的图像并将其发送到另一个系统。现在,业务的另一部分希望加入其中,对数据进行自己的处理,并将其推送到另一个系统。打听了一下,公司周围有几个
我正在尝试朗姆酒我的应用程序,但我收到以下错误:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
所以我在其他程序中没有收到此错误,但我在这个程序中收到了它。 这个程序是一个我没有收到错误的示例。 #include int main() { system("pause"); } // en
我在 c# System.URI.FormatExption 中遇到问题 为了清楚起见,我使用的是 Segseuil 的 Matlab 方法,并且它返回一个图片路径 result。我想为其他用户保存此
我正在尝试像这样设置文本框的背景色: txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 它不喜欢它,因为它要我在前面添加系统,例如: txtCo
请帮助我解决 System.StackOverflowException我想用 .aspx 将记录写入数据库我使用 4 层架构来实现这一切都正常但是当我编译页面然后它显示要插入数据的字段时,当我将数据
我使用了一些通常由系统调用的API。 因此,我将 android:sharedUserId="android.uid.system" 添加到 manifest.xml, 并使用来自 GIT 的 And
我正在尝试创建一个小型应用程序,它需要对/system 文件夹进行读/写访问(它正在尝试删除一个文件,并创建一个新文件来代替它)。我可以使用 adb 毫无问题地重新挂载该文件夹,如果我这样做,我的应用
我想从没有 su 的系统 priv-app 将/system 重新挂载为 RW。如何以编程方式执行此操作?只会用 Runtime.getruntime().exec() 执行一个 shell 命令吗
我正在尝试制作一个带有登录系统的程序我对此很陌生,但我已经连续工作 8 个小时试图解决这个问题。这是我得到的错误代码 + ServerVersion 'con.ServerVersion' threw
当我“构建并运行”Code::Blocks 中的程序时,它运行得非常好!但是当我从“/bin”文件夹手动运行它时,当它试图用 system() 调用“temp.bat”时,它会重置。这是为什么?它没有
我想使用 system/pipe 命令来执行具有特殊字符的命令。下面是示例代码。通过系统/管道执行命令后,它通过改变特殊字符来改变命令。我很惊讶地看到系统命令正在更改作为命令传递的文本。 run(ch
我是一名优秀的程序员,十分优秀!