2016年11月29日火曜日

Android_Layout 用代码添加对象

Android LayoutParams

用代码添加对象(按键),并设置LayoutParames,
当按键Click时,变更LayoutParames 的值。





public class MainActivity extends AppCompatActivity {

    /**
     * https://www.youtube.com/watch?v=QSsvUbPVHOU&index=3&list=PLTstZD3AK3S9sR6uiKzmNtgnY5p4nMT3Z
     *
     * @param savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        Button button = new Button(getApplicationContext());
        button.setText("Button");
        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        ViewGroup viewGroup = (ViewGroup) findViewById(R.id.activity_main);
//      "NG>>"  ViewGroup viewGroup = (ViewGroup) findViewById(R.layout.activity_main);
        viewGroup.addView(button, layoutParams);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RelativeLayout.LayoutParams layoutParams1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
                ((Button) v).setLayoutParams(layoutParams1);
//                java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
//                "NG>>" ViewGroup.LayoutParams layoutParams1 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//                Button bbt = (Button) v;
//                bbt.setLayoutParams(layoutParams1);
            }
        });
    }
}

0 件のコメント: