Android: как получить текстовую позицию из таблицы - PullRequest
0 голосов
/ 16 марта 2011

В виде списка можно легко определить положение конкретной строки с помощью адаптера массива, а затем с помощью метода onlistitemclick мы можем получить это значение в тостовом сообщении

, но как мы можем получить позицию или идентификатор любого конкретного текстапредставление (при щелчке) из представления таблицы, где строки таблицы генерируются динамически через анализатор xml., где имена столбцов - это id, name и class.Идентификатор автоматически увеличивается .. Пожалуйста, предложите.

код

try {

        /** Handling XML */
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();


        URL sourceUrl = new URL("http://ip-address/test/player.xml");


        MyXMLHandler myXMLHandler = new MyXMLHandler();
        xr.setContentHandler(myXMLHandler);
        xr.parse(new InputSource(sourceUrl.openStream()));

        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }


    DataList dataList = XMLHandler.DataList;


    name = new TextView[dataList.getName().size()];
    class = new TextView[dataList.getName().size()];

    /** Set the result text in textview and add it to layout */
    for (int i = 0; i < DataList.getName().size(); i++) {

         TableRow tr = new TableRow(this);
         tr.setId(100+i);
         tr.setLayoutParams(new LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT)); 

         // Create a TextView to house the name of the province
         name[i]= new TextView(this);
         name[i].setId(200+i);
         name[i].setText(dataList.getName().get(i));
         name[i].setTextColor(Color.WHITE);
         name[i].setLayoutParams(new LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
         tr.addView(name[i]);

         class[i] = new TextView(this);
         class[i].setId(i);
         class[i].setText(dataList.getClass().get(i));
         class[i].setTextColor(Color.WHITE);
         class[i].setLayoutParams(new LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
         tr.addView(class[i]);


        t1.addView(tr, new TableLayout.LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
     }
}

1 Ответ

2 голосов
/ 16 марта 2011

Вызов метода ViewGroup:

public int indexOfChild (View child)

в TableLayout, где child - это TableRow. TableRow должен быть доступен через

public final ViewParent getParent ()

из Просмотр внутри TableRow.

TableRow tableRow = (TableRow)mTextView.getParent();    

int index = -1;

if(parent != null){
    index = mTable.indexOfChild(tableRow);
}

if(index < 0){
    throw new IllegalStateException("TextView not found");
}

Надеюсь, это поможет, но я не проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...