如何在android中为另一个活动设置按钮的可见性

时间:2014-01-07 07:36:48

标签: android button visibility

我正在开发一个Android应用程序,我正在尝试为按钮设置visiblity 这里有两项活动

1)Activity2包含note1,note2,note3等按钮。 2)Activity1随附click'g上的按钮将改变上述按钮的可见性,即note1,note2,note3。

嘿,任何人都可以帮助我PLZ

活动-1: 公共类Activity_2扩展了Activity实现的OnSeekBarChangeListener {

SeekBar sb1, sb2, sb3, sb4;
Button n1, n2, n3;

private TextView name1, name2, name3, name4, add_row,
          pro_a_e_name1, pro_a_e_name2, pro_a_e_name3, pro_a_e_name4,
          status1, status2, status3, status4;

private ProgressBar prg_br1, prg_br2, prg_br3, prg_br4;
private int prg_br_Status1=0, prg_br_Status2=0, prg_br_Status3=0, prg_br_Status4=0;


/*@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onRestoreInstanceState(savedInstanceState);

    n1= (Button) findViewById(R.id.note1);

    Bundle bun1 = getIntent().getExtras();
    int val1 = bun1.getInt("VAL1");
    if(val1==1);
    {
       n1.setVisibility(View.VISIBLE);
    }

}

}

活动-2: 公共类note1扩展了Activity {

@Override
protected void onCreate(Bundle savedInstanceState)
{

    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.note1);

    final TextView note1_1=(TextView)findViewById(R.id.note1_1);

    Bundle extras=getIntent().getExtras();
    String note1 = extras.getString("s1"); 
    note1_1.setText(note1); 

}


public void onBack(View v)
{
    Intent back1= new Intent(note1.this, Activity_2.class);
    Bundle b1= new Bundle();
    String VAL1 = null;
    b1.putInt(VAL1, 1);
    back1.putExtras(b1);
    startActivity(back1);   

}

}

除了改变可见性之外,这正是我正在尝试做的事情 切换顺序:Act1至Act2至Act3至Act4 在这里,我正在改变能见度,同时回来 Act4到Act2

6 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情......

Button btn;
Button note1;

        btn.setOnClickListener(new OnClickListener() {

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

                note1.setVisibility(View.GONE);

            }
        });

如果你需要在其他活动中做一些事情,只需通过意图传递数据。使用另一个活动的Oncreate()上的Bundle获取该值。

对于Ex:

如果您在Activity 1中按下了note1按钮,则为其设置一些默认值,然后将该值传递给其他活动。通过这种方式,您将知道单击了哪个按钮,然后只需按照上面的说明设置它的可见性。

答案 1 :(得分:0)

使用共享首选项存储按钮的可见性,从Activity1更新首选项以及在Activity2中获取首选项,并在onResume()函数中更新您的视图。

答案 2 :(得分:0)

这里我用伪代码编写

活动1:

  1. clickOnButton
  2. 使用意图发送一些标志(可能是0或1)或根据您的应用程序发送自定义数据。
  3. 活动2:  1.获取标志或自定义数据  2.根据您的数据类型将其放在整数或字符串中  3.如果flag为0,则设置可见性,否则执行某些操作

答案 3 :(得分:0)

有许多方法可以实现您想要的目标:

  1. 在调用startActivity(intent)方法

  2. 之前,使用intent's extra在活动之间传递数据
  3. 使用SharedPreference存储Button的状态,并使用Activity2中存储的值。

  4. public中创建static Activity1个字段,然后在Activity2的{​​{1}}方法中使用它们来设置onResume()可见性< / p>

  5. 等...

答案 4 :(得分:0)

在Activity1上执行此操作

Button play;

    play = (Button) findViewById(R.id.playId);      

    play.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {



    Intent nextActivity = new Intent(Activity1.this, Activity2.class);
    Bundle bundle = new Bundle();
    bundle.putInt("VAL", 1);

    nextActivity.putExtras(bundle);
    startActivity(nextActivity);

    }

    });
Activity2上的

执行此操作:

Bundle bun=getIntent().getExtras();
int val=bun.getInt("VAL");
 .
 .
 .
if(val==1)
{
   note1.setVisibility(View.VISIBLE);
   note2.setVisibility(View.VISIBLE);
   note3.setVisibility(View.VISIBLE);
}

它将解决您的问题

答案 5 :(得分:0)

在上一个活动中按下按钮&#34;静态&#34;例如,在后面的下一个活动中设置像previousActivity.Button.setVisibility(View.VISIBLE);

这样的可行性

我已经做到了并解决了我的问题

相关问题