2015-05-15 2 views
0

Я пытаюсь написать код, в котором после загрузки макета, я хочу знать, какие элементы вид связаны с макетом, как TextView, EditText, Checkbox и т.д.Как узнать элементы вида после загрузки макета?

MyCode:

MainActivity.java

package com.example.myview; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v7.app.ActionBarActivity; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 


public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    View view = LayoutInflater.from(this).inflate(R.layout.demo_layout, null); 
    // How to get to know about the UI Elements related to this layout // 

    } 


} 

demo_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<LinearLayout 
      android:id="@+id/lnr"  
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#ddccee" 
      android:orientation="vertical"> 

     <TextView 
      android:id="@+id/txt1" 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:textSize="15dp" 
      android:textColor="#ffffff" 
      android:text="Test Layout" 
      android:layout_gravity="center" 
      android:gravity="center"/> 

     <EditText 
      android:id="@+id/edit1" 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:textSize="15dp" 
      android:textColor="#ffffff" 
      android:text="Test Layout" 
      android:layout_gravity="center" 
      android:gravity="center"/> 


     <TextView 
      android:id="@+id/txt2" 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:textSize="15dp" 
      android:textColor="#ffffff" 
      android:text="Test Layout" 
      android:layout_gravity="center" 
      android:gravity="center"/> 


</LinearLayout> 

Это расположение имеет TextView, EditText, поэтому, я хочу знать, как получить элементы пользовательского интерфейса, связанные с использованием этого макета программно.

Итак, пожалуйста, предложите мне некоторое решение.

+0

Вам необходимо инициализировать все пользовательские интерфейсы, дающие ссылку на ваш надутый объект просмотра. – Piyush

ответ

1

Вы можете использовать getChildCountREF, чтобы получить количество просмотров добавлены в ViewGroup, а затем использовать getChildAtREF, чтобы получить View в данном индексе.

Вы используете LinearLayout в качестве базовой компоновки, которая уже расширяет ViewGroup Просто измените строку ниже.

LinearLayout view = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.demo_layout, null); 
+0

Да, но как можно использовать ViewGroup ... в действии – MyCode

+0

Отредактировано answere – Manish

+0

да, это мы можем сделать, поэтому нам нужно иметь класс CustomView – MyCode

0

После того, как вы завышены ваш demo_layout просто позвоните findViewById на вашем view например так:

View view = LayoutInflater.from(this).inflate(R.layout.demo_layout, null); 
TextView txt1 = (TextView) view.findViewById(R.id.txt1); 
+0

oh !! человек, эта вещь, которую каждый разработчик Android знает, я хочу знать, как узнать, есть ли текстовое представление в макете программно – MyCode

+0

ну, извините, человек, просто хотел вам помочь ... – flyingAssistant

+0

да нет проблемы, может быть, вы просто неправильно понял вопрос, но не стоит беспокоиться, так что вы можете предложить мне какое-то решение – MyCode

0

view Элементы должны быть получены с помощью view.findViewById(). За исключением действий, которые вы используете findViewById(), непосредственно для извлечения элементов вида содержимогоView, установленного в setContentView().

Смежные вопросы