我想知道是否可以在Android的Listview中放置TextView列表。我尝试了这段代码,但结果并没有给我正确的文字。我想显示20 toto进行测试。
这是我的Main.class
public class MainActivity extends Activity {
private ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listcontacts);
// Instanciating an array list (you don't need to do this,
// you already have yours).
List<TextView> contacts = new ArrayList<TextView>();
for(int i = 0 ; i< 20; i++)
{
TextView toto = new TextView(this);
toto.setText("toto");
contacts.add(toto);
}
// This is the array adapter, it takes the context of the activity as a
// first parameter, the type of list view as a second parameter and your
// array as a third parameter.
ArrayAdapter<TextView> arrayAdapter = new ArrayAdapter<TextView>(
this,
android.R.layout.simple_list_item_1,
contacts );
listview.setAdapter(arrayAdapter);
}
然后是主
的XML文件 <ListView
android:id="@+id/listcontacts"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
我是否需要在listview中创建TextView并在我的课程中调用“findViewById(TextView)”?
感谢。
答案 0 :(得分:1)
我是否需要在listview中创建TextView并调用 &#34; findViewById(的TextView)&#34;在我班上?
不,你不应该。适配器负责使您的数据集适应某种可视化。例如,ArrayAdapter
正在使用simple_list_item_1.xml
中包含的TextView。在您的情况下,contacts
应为ArrayList<String>
且适配器应为Adapter<String>
答案 1 :(得分:0)
只需更改字符串的TextView数组:
删除:强>
List<TextView> contacts = new ArrayList<TextView>();
for(int i = 0 ; i< 20; i++)
{
TextView toto = new TextView(this);
toto.setText("toto");
contacts.add(toto);
}
和:
ArrayAdapter<TextView> arrayAdapter = new ArrayAdapter<TextView>(
this,
android.R.layout.simple_list_item_1,
contacts );
添加:
List<String> contacts = new ArrayList<String>();
for(int i = 0 ; i< 20; i++)
{
contacts.add("toto");
}
和
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
contacts );
答案 2 :(得分:0)
您不必创建TextViews
适配器为您执行此操作。只需创建
List<String> contacts = new ArrayList<String>(20);
for(int i = 0 ; i< 20; i++) {
contacts.add("toto");
}
并致电
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
contacts );
答案 3 :(得分:0)
您可以创建自定义适配器。或者使用String适配器。
cmd=( myscript.py --name="Some Text With Spaces" )
"${cmd[@]}"
答案 4 :(得分:0)
谢谢大家的回答。我在网上找到了一些东西并进行了测试。这正是我想要做的。
&#34;使用自定义ArrayAdapter&#34;是我使用的解决方案。
https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView
在此,他们创建一个包含2个String数据的模型。 然后创建要显示的模板xml。 并创建适配器来填充数据。 填写数据。