如何创建文字视图列表

时间:2017-01-29 18:10:44

标签: java android arrays listview textview

我想要一个可点击的文字视图列表,这是我有的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">

    <TextView
        android:id="@+id/marque_scrolling_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:padding="16dp"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Create a Marquee (Scrolling Text) in Android Using TextView. Android Marquee (Scrolling Text) Tutorial with Example"
        android:textSize="24sp" />
</LinearLayout>

希望所有可点击的项目列表

这是我使用的代码:

TextView marque1 = (TextView) this.findViewById(R.id.marque_scrolling_text);
marque1.setSelected(true);

marque1.setOnClickListener(new View.OnClickListener() 
{
    @Override
    public void onClick(View v)
    {
        System.out.println("dhgjgf jfgsfjhsgfsjfgdfjh");
    }
});

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您不能使用ListView,那么您可以自己动态创建和添加TextView!

我假设你有一个你想要显示为TextViews的字符串数组:

String[] strings = {"TextA", "TextB"};

获取将包含所有TextView的布局:

LinearLayout layout = (LinearLayout) findViewById(R.id.listLayout);
// you will need to set an id for the layout in the xml

然后遍历列表,为每个String创建一个新的TextView,添加onClickListener并随意执行任何操作(如更改文本颜色),然后将其添加到Layout:

for(String s : strings)
{
     TextView newTextView = new TextView(this);
     newTextView.setText(s);
     newTextView.setTextColor(#0066ff); // for example
     newTextView.setOnClickListener(new View.OnClickListener()  
        { 
            @Override 
            public void onClick(View v)
            { 
              System.out.println("dhgjgf jfgsfjhsgfsjfgdfjh");
            } 
        }); 

     layout.addView(newTextView);
}