android – setEnabled(),setClickable()无效

前端之家收集整理的这篇文章主要介绍了android – setEnabled(),setClickable()无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用了FrameLayout,其中我使用了两个LinearLayouts.第二个最初是不可见的,但是当我按下布局1上的按钮时,第二个布局变得可见并且与第一个布局重叠.我想要的是当我的第二个布局出现时,第一个布局的元素不应该是可点击的(或启用的).
为此我尝试了setEnabled(false)和setClickable(false),但这两个都不起作用我没有得到什么问题.

代码如下

TableLayout table; 

EditText edit;  
ScrollView scroll;

Button btn_save;
Button btn_layer_save;
Button btn_cross;

AlertDialog alert_dialog;

LinearLayout layout_above;

int primary_selected;

RadioButton radio_geo;
RadioButton radio_alumni;

String geo = "no" ;
String alumni = "no" ;

int color;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    table = (TableLayout) findViewById(R.id.tableLayout1);
    edit = (EditText) findViewById(R.id.message_select_friends_edit_search);
    search_geo_name_list = new ArrayList<String>();
    search_id_list = new ArrayList<String>();

    scroll = (ScrollView) findViewById(R.id.register_scroll_view);

    btn_cross = (Button) findViewById(R.id.register_cross);
    btn_save = (Button) findViewById(R.id.register_save);
    btn_layer_save  = (Button) findViewById(R.id.register_layer_save);

    btn_cross.setOnClickListener(this);
    btn_save.setOnClickListener(this);
    btn_layer_save.setOnClickListener(this);

    layout_above = (LinearLayout) findViewById(R.id.regsiter_layout_layer_above);

    createTableRows(name_list,id_list);



}

void createTableRows(ArrayList<String> list_name,ArrayList<String> list_id )
{
    /*-----R O W S   O F   T A B L E   C R E A T E D   D Y N A M I C A L L Y ------*/
}

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

    switch (v.getId())
    {
    case R.id.register_save:

          layout_above.setVisibility(LinearLayout.VISIBLE);
          btn_save.setVisibility(LinearLayout.INVISIBLE);

        scroll.setEnabled(false);
        edit.setEnabled(false);
        edit.setClickable(false);
        scroll.setClickable(false);

        break;

    case R.id.register_cross:
        Toast.makeText(this,"Cross Cancel",1000).show();
        Intent intent = new Intent(this,TestSave.class);
        startActivity(intent);
        finish();
        break;
    case R.id.register_layer_save:
        selectedInfo();
        break;

    } 

}`

解决方法

将正面布局的大小作为背景布局的大小并设置为正面
布局的背景颜色透明,所以背景布局是部分的
可见.
并将onClickListener设置为front layout,而onClick方法则不执行任何操作.

这个答案并不完全符合您的要求,但它是一个很好的选择.

希望能帮助到你

猜你在找的Android相关文章