Android 当从第二个活动导航到第一个活动时,如何使图像在第一个活动中不可见

Android 当从第二个活动导航到第一个活动时,如何使图像在第一个活动中不可见,android,Android,我在firstActivity(MainActivity)中有两个图像视图,当我单击signIn image时,它会移动到SignUp Activity。。。 在这里,当我点击注册图像时,它将再次进入main活动。在这里,我必须使firstName图像不可见 public class MainActivity extends Activity { ImageView firstName,signIn ; public void onCreate(Bundle savedInstanceS

我在
firstActivity(MainActivity)
中有两个图像视图,当我单击signIn image时,它会移动到
SignUp Activity
。。。 在这里,当我点击注册图像时,它将再次进入
main活动
。在这里,我必须使
firstName
图像不可见

public class MainActivity extends Activity  {

ImageView firstName,signIn ;


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_main);

    firstName =(ImageView)findViewById(R.id.imageView1);
signIn =(ImageView)findViewById(R.id.imageView2);

    signIn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent intent = new Intent(getApplicationContext(),SignUp.class);
            startActivity(intent);              

        }
    });     
    }



 protected void onStart() {
    super.onStart();
    Log.i(TAG, "onStart");  

    String mm ="5";
    Intent i= getIntent(); String s = i.getStringExtra("PrevAct");

    if (mm ==s) {               

            firstName.setVisibility(View.GONE);
    }
        }

public class SignUp extends Activity {


ImageView signUp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
        setContentView(R.layout.signup);      

    signUp =(ImageView)findViewById(R.id.imageView3);       
    signUp.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub              

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
             intent.putExtra("PrevAct","5");
             startActivity(intent);


        }
    });

}}
  • 在尝试再次启动MainActivity活动时,请确保重复使用同一实例,而不是新实例,以提高应用程序的性能

    Intent Intent=新的Intent(getApplicationContext(),MainActivity.class); intent.addFlags(intent.FLAG\u ACTIVITY\u REORDER\u TO\u FRONT); 意向。额外(“预先行动”、“注册”); 星触觉(意向)

  • 使用变量检查屏幕是否由SignUpActivity呈现

    Intent i=getIntent(); 字符串s=i.getExtra(“PrevAct”、“NO”)

  • 根据字符串值,可以决定显示/隐藏

  • 请注意,
    View.Invisible
    仅在屏幕上隐藏视图。但它仍然会被加载并占据屏幕上的空间。这是一个糟糕的UI实现

    因此,请改用
    View.GONE

    您的源代码修改如下

        public class MainActivity extends Activity {
    
        ImageView firstName,signIn ;
    
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);     
            setContentView(R.layout.activity_main);
    
            firstName =(ImageView)findViewById(R.id.imageView1);
        signIn =(ImageView)findViewById(R.id.imageView2);
    
            signIn.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
    
                    Intent intent = new Intent(getApplicationContext(),SignUp.class);
                    startActivity(intent);              
    
                }
            });     
            }
    
    
    
    
               protected void onStart() {
            super.onStart();
            firstName  = (ImageView)findViewById(R.id.textView1);
    
              { 
    
    
    
                Intent i= getIntent();
                if(i!=null){
                String s = i.getExtra("PrevAct","NO");
                if(s.equalsIgnoreCase("SignUP"))
                firstName.setVisibility(View.GONE);
                }
    else
         firstName.setVisibility(View.Visible);
            }
        }
    
        public class SignUp extends Activity {
    
        ImageView signUp;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
                setContentView(R.layout.signup);      
    
            signUp =(ImageView)findViewById(R.id.imageView3);       
            signUp.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub              
    
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        intent.putExtra("PrevAct","SignUP");
                startActivity(intent);
    
    
                }
            });
        }}
    
  • 通过单击登录图像,使用startActivityForResult开始您的注册活动
  • 在注册活动中,使用setResult和finish返回登录活动
  • 当返回到第一个活动时,在onActivityResult中使firstName图像不可见或消失

  • Intent Intent=新的Intent(getApplicationContext(),MainActivity.class);intent.addFlags(intent.FLAG\u ACTIVITY\u REORDER\u TO\u FRONT);意向。额外(“先前行为”、“5”);星触觉(意向);受保护的void onStart(){super.onStart();Log.i(标记,“onStart”);String mm=“5”;Intent i=getIntent();String s=i.getStringExtra(“PrevAct”);if(mm==s){loginWith.setVisibility(View.GONE);sign.setVisibility(View.GONE);}谢谢你的回复..我已经改变了,但是没有得到..在mainactivity中,我将代码放在了onStop()中。。。