以下に示すカスタム レイアウトがあり、そのレイアウト ファイル内から TextViews テキストを更新したいと考えています。しかし、TextView はレイアウト ファイル内にまったくありません。
申し訳ありませんが、実装しているものを適切に説明する方法がわかりません。誰かが正しい用語についてアドバイスすることさえできれば、それは大歓迎です。
基本的には、com.grogorian.android.control.MinutePicker から膨らませたボタンをクリックしたときに、TextView を AM から PM に変更したいと考えています。com.grogorian.android.control.MinutePicker 内で以下の Java を使用していますが、null ポインターを取得し続けます
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/L"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal">
<com.grogorian.android.control.MinutePicker
android:id="@+id/Picker2"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</com.grogorian.android.control.MinutePicker>
<TextView android:id="@+id/AMPMIdentifier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AM" />
ジャバはこちら
LinearLayout L = (LinearLayout)findViewById(R.id.L);
TextView Identifier = (TextView)L.findViewById(R.id.AMPMIdentifier);
Identifier.setText("PM");
編集:ここからのコードです
but = new Button( context );
but.setTextSize( TEXT_SIZE );
but.setText( "-" );
// Decrement once for a click
but.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
LinearLayout L = (LinearLayout)findViewById(R.id.L);
TextView Identifier = (TextView)L.findViewById(R.id.AMPMIdentifier);
Identifier.setText("PM");
}
});
this.setLayoutParams( new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT ) );
LayoutParams elementParams = new LinearLayout.LayoutParams( ELEMENT_WIDTH, ELEMENT_HEIGHT );
addView( but, elementParams );