android中也可以用到java的反射机制,通过类的对象来获取类的信息,
在做的一个应用中要用到存储控件名,所以这里简单写一下
package com.example.getclasstext;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
ArrayList<View> list = new ArrayList<View>();
Button MyBtn = null;
TextView MyText = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyBtn = (Button)findViewById(R.id.MyBtn);
MyText = (TextView)findViewById(R.id.MyText);
MyBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
for(int i=0; i<list.size();++i){
MyText.append("\n"+list.get(i).getClass().getSimpleName());
}
}
});
Button btn01 = new Button(this);
EditText edit01 = new EditText(this);
ImageView image01 = new ImageView(this);
list.add(btn01);
list.add(edit01);
list.add(image01);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}