用android做东西时需要用到在程序运行时动态添加控件,自己看了下别人的东西,然后结合自己的情况写了下,用着还行,
下面是代码
package com.example.addkj;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
LinearLayout MyLayout = null;
View CurView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
MyLayout = new LinearLayout(this);
MyLayout.setOrientation(LinearLayout.VERTICAL);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int i=0;i<5;++i){
Button btn01 = new Button(this);
btn01.setText("Button "+i);
MyLayout.addView(btn01);
}
setContentView(MyLayout);
/*btn01.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
EditText te = new EditText(v.getContext());
te.setBackgroundDrawable(null); //设置edittext没有边框,类似于android:background="@null"
te.setText("新开出来的。。。"+te.getBaseline());
MyLayout.addView(te);
}
});
btn01.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View v) {
CurView = v;
return false;
}
});*/
super.registerForContextMenu(MyLayout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case Menu.FIRST:
MyLayout.removeView(CurView);
break;
}
return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//super.getMenuInflater().inflate(R.menu.mymenu, menu);
menu.add(0,Menu.FIRST,1,"删除");
menu.add(0,Menu.FIRST+2,2,"取消");
}
}