Аз съм сравнително нов в програмирането за Android. Прегледах много теми по тази тема, но нито едно от споменатите решения не работи за мен. Ето какво опитвам. Опитвам се да създам ресурс за оформление с XML файл и в моята MainActivity правя setContentView(R.layout.activity_main). след това имам персонализиран клас за изглед, който разширява изгледа, в който се опитвам да променя оформлението по подразбиране, дефинирано във файла activity_main.xml. Въпреки това всеки път, когато се опитам да получа ID на изглед с findViewById(R.id.) (от файла с оформлението activity_main.xml) в персонализирания изглед, внедрен в отделен файл, винаги получавам нула. Ако се опитам да получа идентификатора в класа MainActivity с findViewById(...), получавам правилна стойност.
Какво правя грешно тук?
Ето всички кодови фрагменти
Благодаря
Ето файла "MainActivity.java"
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyView myView = new MyView(this, null);
....
Ето файла MyView.java
public class MyView extends View {
public static final String DEBUG_TAG = "MYVIEW" ;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
View tablerow1 = (TableRow) findViewById (R.id.tableRow) ;
Log.v(DEBUG_TAG," tablerow1 = " + tablerow1 + "\n");
}
А ето и файла activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:background="@color/red"
android:shrinkColumns="*"
android:stretchColumns="*" >
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:gravity="center_horizontal">
<Button
android:id="@+id/button_00_1"
android:text="@string/button_1"
android:textStyle="bold"
android:background="@color/green"
android:layout_margin="0.5dp"
android:layout_width="0dp"
android:layout_weight="0.5"
android:typeface="serif"></Button>
</TableRow>
</TableLayout>
</LinearLayout>
Извикването findViewById(...) в MyView.java винаги връща нула, докато ако го включа във файла MainActivity.java, получавам правилни ненулеви стойности.
Може ли някой да посочи какво не е наред тук?
Благодаря