0

私の質問は、ScrollViewHorizo​​ntalScrollViewとTextView配列を含むテーブルを配置するようなものです。

これは私のmain.javaです:

public class tabla extends Activity {

    SitesList sitesList = null;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tabla);

        TableLayout layout =(TableLayout)findViewById(R.id.tabla);

        TableRow tr[] = new TableRow[80];

        TextView variacion[];
        TextView nemotecnico[];
        TextView precio[];

        try {

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

            /** Send URL to parse XML Tags */
            URL sourceUrl = new URL("http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=75");

            /** Create handler to handle XML Tags ( extends DefaultHandler ) */
            MyXMLHandler myXMLHandler = new MyXMLHandler();
            xr.setContentHandler(myXMLHandler);
            xr.parse(new InputSource(sourceUrl.openStream()));

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

        /** Get result from MyXMLHandler SitlesList Object */
        sitesList = MyXMLHandler.sitesList;

        /** Assign textview array lenght by arraylist size */

        nemotecnico = new TextView[sitesList.getNemotecnico().size()];
        variacion = new TextView[sitesList.getVariacion().size()];
        precio = new TextView[sitesList.getPrecio().size()];


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

            variacion[i] = new TextView(this);
            variacion[i].setText("   " +sitesList.getVariacion().get(i));

            nemotecnico[i] = new TextView(this);
            nemotecnico[i].setText("   " +sitesList.getNemotecnico().get(i));

            precio[i]  = new TextView(this);
            precio[i].setText("   " + sitesList.getPrecio().get(i));

            Pattern pattern = Pattern.compile("^([a-z: ]*)?+(\\+?[0-9]+([,\\.][0-9]*)?)$");
            Matcher matcher = pattern.matcher(sitesList.getVariacion().get(i));
            if (!matcher.matches())

                variacion[i].setTextColor(Color.parseColor("#ff0000"));
            else
                variacion[i].setTextColor(Color.parseColor("#008000")); 


        }   
        for (int i = 0; i < 80; i++) {
            tr[i] = new TableRow(this);

            tr[i].addView(nemotecnico[i], new TableRow.LayoutParams(1));
            tr[i].addView(precio[i], new TableRow.LayoutParams(2));
            tr[i].addView(variacion[i], new TableRow.LayoutParams(3));

            layout.addView(tr[i], new TableLayout.LayoutParams());

        }
        /** Set the layout view to display */
        setContentView(layout);

    }    
}

あなたが私のコードで見るように:

TableLayout layout =(TableLayout)findViewById(R.id.tabla);  

TableRow tr[] = new TableRow[80];

TextView variacion[];
TextView nemotecnico[];
TextView precio[];

そして、TableRowにTextViewを表示します

for (int i = 0; i < 80; i++) {
    tr[i] = new TableRow(this);

    tr[i].addView(nemotecnico[i], new TableRow.LayoutParams(1));
    tr[i].addView(precio[i], new TableRow.LayoutParams(2));
    tr[i].addView(variacion[i], new TableRow.LayoutParams(3));

    layout.addView(tr[i], new TableLayout.LayoutParams());

}
/** Set the layout view to display */
setContentView(layout);

しかし、私のXmlは以下のようになっているため、Horizo​​ntalScrollViewとScrollViewを配置できません。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tabla"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fondo" >

</TableLayout>

あなたの助けに感謝します、ありがとう!

4

1 に答える 1

1

テーブル全体を垂直スクロールビューと水平スクロールビューの両方でラップしたり、個々のセルをラップしたりできない理由がわかりません(どちらか好きな方)。最初のオプションは次のようになります。

<ScrollView ...>
    <HorizontalScrollView ...>
        <TableLayout ...>
    </HorizontalScrollView>
</ScrollView>

ただし、これにより、ユーザーはジェスチャーごとに水平方向または垂直方向にのみスクロールでき、斜め方向にはスクロールできません。ただし、この質問では、Androidでの垂直方向と水平方向の2次元ScrollViewの作成について説明します。

于 2012-08-31T16:55:50.467 に答える