ロウキルさん。こんにちは。
ご質問の趣旨が「xmlで作成したレイアウトを表示したい」のであれば、それを実現するJavaのコードは次のとおりになります。
この場合、TextViewをnewする必要はありません。
public class SelectorActivity extends Activity implements OnClickListener {
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView)findViewById(R.id.TextView);
tv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==tv){//クリックした場合
//業務を行う
return;
}
}
}
この場合、main.xmlにおいて、TextViewに「android:id="@+id/TextView"」を付加する必要があります。
ロウキルさんのコードを見ると、JavaでTextViewをnewしていますので、「main.xmlを使わずに、Javaのコードで表示したい」ということになります。
この場合のJavaのコードは次のとおりになります。
public class SelectorActivity extends Activity implements OnClickListener {
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ColorStateList csl = null;
//文字の色を設定する。
Resources r = getResources();
XmlResourceParser xrp = r.getXml(R.color.colorselector);
try{
csl = ColorStateList.createFromXml(r, xrp);
}
catch(IOException eIO){
}
catch(XmlPullParserException eXPP){
}
//TextViewを設定する。
tv = new TextView(this);
ViewGroup.LayoutParams VL = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(VL);
tv.setText("確定");
tv.setTextColor(csl);
tv.setGravity(Gravity.CENTER);
tv.setBackgroundResource(R.drawable.drawselector);
tv.setClickable(true);
tv.setOnClickListener(this);
//画面に表示する。
LinearLayout ll = new LinearLayout(this);
ll.addView(tv);
setContentView(ll);
}
@Override
public void onClick(View v) {
if(v==tv){//クリックした場合
//業務を行う
return;
}
}
}
2012年5月10日木曜日 12時57分02秒 UTC+9 ロウキル: