Почему я не могу загрузить класс Sub в макет XML? - PullRequest
0 голосов
/ 01 декабря 2011

В My Application мой XML-макет выглядит следующим образом:

<RelativeLayout
        android:layout_width="fill_parent"     
        android:layout_height="fill_parent">     

        <View
            class="com.project.twsbi.FingerPaint$MyView"
            android:id="@+id/image"      
            android:layout_width="fill_parent"         
            android:layout_height="fill_parent"
            />
        </RelativeLayout>

Где MyView - это подкласс проекта FingerPaint.

Теперь в Java-файле я собираюсь обработать эти ресурсыкак показано ниже:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(new MyView(this)); // Edited
    setContentView(R.layout.main);
    display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();


    // ste resources to View of Paint
    View view = (View)findViewById(R.id.image);

    view = new MyView(this);
  }

Теперь проблема в том, что я получил другое представление, но не это представление подкласса.

Отредактировано: после выполнения выше я не получаю успех, затем я попробую другоеМетод:

Я создал относительную компоновку в этой компоновке и добавил представление содержимого для этой относительной компоновки, но она все еще не работает, и дал мне нулевой указательТехника:

    <RelativeLayout
        android:layout_width="fill_parent"     
        android:layout_height="fill_parent">     

        <RelativeLayout
            android:id="@+id/drawingLayout"     
            android:layout_width="fill_parent"     
            android:layout_height="fill_parent">

        </RelativeLayout>
</RelativeLayout>

И Java-код для реализации:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(new MyView(this)); // Edited
    setContentView(R.layout.main);

    drawingLayout = (RelativeLayout)findViewById(R.id.drawingLayout);


    // ste resources to View of Paint
    //view = (View)findViewById(R.id.image);

    myView = new MyView(this);
    RelativeLayout innerLayout = new RelativeLayout(getApplicationContext());
    innerLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    //drawingLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    LayoutParams lp = drawingLayout.getLayoutParams(); // got nullPointer exception here
    //innerLayout.addView(view);
    //drawingLayout.addView(innerLayout);
    addContentView(myView, lp);
  }

Итак, делая выше оба, я не могу получить представление подкласса?Где я не прав ??Пожалуйста, помогите мне в этом.,,Спасибо.

1 Ответ

1 голос
/ 01 декабря 2011

Если вы пытаетесь включить другой макет (MyView) в макет, который вы перечислили, взгляните на «Включить и объединить»: http://developer.android.com/resources/articles/layout-tricks-merge.html

...