0

我的问题就像放置一个 ScrollView Horizo​​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);

但是我不能放 Horizo​​ntalScrollView 和 ScrollView 因为我的 Xml 如下图所示。

<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 中创建二维 ScrollView: Scrollview vertical and Horizo​​ntal

于 2012-08-31T16:55:50.467 回答