2017-08-30 402 views
0

我有一个活动的主要和第二个活动。 活动主有3个文本视图和一个按钮,活动第二个有3个编辑文本一个按钮和一个保存按钮,第三个编辑文本是不可见的,当我按下按钮编辑文本变得可见。如何获取其他活动的编辑文本的可见性结果?

我的问题是,如何获得该编辑文本的可见性状态? 我想要显示的结果时,它是可见的,并TextView的可见 我也希望它是无形的当次活动的按钮未按

我在活动主当前代码

// This method opens the second activity 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from activity.xml 
    setContentView(R.layout.activity_main); 
    // Locate the button in activity_main.xml 
    btn1 = (Button)findViewById(R.id.Open_Form); 
    // Capture button clicks 
    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      // Start SecondActivity.class for result 
      Intent myIntent3 = new Intent(MainActivity.this, 
        SecondActivity.class); 
      startActivityForResult(myIntent3, ACTIVITY_RESULT_CODE); 
     } 
    }); 
// This method is called when second activity finishes 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    // Check that it is the second activity with an OK result 
if (requestCode == ACTIVITY_RESULT_CODE) { 
     if (resultCode == RESULT_OK) { 
      // Get string data from Intent 
      String Brand = data.getStringExtra("@id/etBrand"); 
      // Set text view with string 
      TextView tvBrand = (TextView)findViewById(R.id.tvBrand); 
      tvBrand.setText(Brand); 
      tvBrand.getVisibility();{ 
       String Name = data.getStringExtra("@id/etName"); 
       TextView tvName = (TextView)findViewById(R.id.tvName); 
       tvName.setText(Name); 
       tvName.getVisibility();{ 
        String Size = data.getStringExtra("@id/etSize"); 
        TextView tvSize = (TextView)findViewById(R.id.tvSize); 
        tvSize.setText(Size); 
        tvSize.getVisibility();{ 
       } 
      } 
     } 
    } 
} 

我的第二个活动代码

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_rod_dialog1); 
EditText etSize = (EditText)findViewById(R.id.etSize); 
    etSize.setVisibility(View.INVISIBLE); 
Button button2 = (Button)findViewById(R.id.Add_Size); 
    button2.setVisibility(View.VISIBLE); 
// Create the submit button 
    btn1 = (Button)findViewById(R.id.bSave); 
    btn1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      // Get the text from EditText and put the string to pass back into an Intent 
      EditText etBrand = (EditText)findViewById(R.id.etBrand); 
      String stringToPassBack = etBrand.getText().toString(); 
      Intent myIntent1 = getIntent(); 
      myIntent1.putExtra("@id/etBrand", stringToPassBack); 
      // Get the text and put the string to pass back into an Intent 
      EditText etName = (EditText)findViewById(R.id.etName); 
      String stringToPassBack1 = etName.getText().toString(); 
      Intent myIntent2 = getIntent(); 
      myIntent2.putExtra("@id/etName", stringToPassBack1); 
      // Get the text and put the string to pass back into an Intent 
      EditText etSize = (EditText)findViewById(R.id.etSize); 
      String stringToPassBack2 = etSize.getText().toString(); 
      Intent myIntent3 = getIntent(); 
      myIntent3.putExtra("@id/etSize", stringToPassBack2); 

      // Close activity 
      setResult(RESULT_OK_1, myIntent1); 
      finish(); 
     } 
    }); 
    btn2 = (Button)findViewById(R.id.Add_Size); 
    btn2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      EditText etSize = (EditText)findViewById(R.id.etSize); 
      etSize.setVisibility(View.VISIBLE); 
      Button button2 = (Button)findViewById(R.id.Add_Size); 
      button2.setVisibility(View.INVISIBLE); 
     } 
    }); 
} 
+0

您检查RESULT_OK但你的setResult的RESULT_OK_1。 – RonTLV

+0

这是一个打字错误。 –

回答

0

您应该将putExtra()作为额外的结果添加到您的意图中。你也应该用这种方式使用startActivity方法。

+0

谢谢,你可能请举个例子吗? –

+0

在评论中的格式化是有趣的,但我会尝试。你应该在你的第二个活动中过去,而不是完成:Intent intent = new Intent(this,FirstActivity.class); intent.putExtra(“EditText visible”,etSize.getVisibility()); startActivity(意向); –

0

要获得编辑文本(实际上任何视图)的可见性,您可以使用isShown()

+0

谢谢,你可能请举个例子吗? –

+0

如果它是可见的,它将返回True的布尔值。所以,如果我正确理解你的问题,那么你想检查btn2的onClickListener来查看字段'etSize'是否可见。在这种情况下,if(etSize.isShown())'做了一些事情,然后做一些事情 – CJLWS

+0

哦,看着你的代码,你在不同的地方声明了多个对etSize的引用 - 如果你有更多的时间,你只做一次 – CJLWS

相关问题