Android 将项目一个接一个地添加到 LinearLayout 中
Android Add Items One By One Into a LinearLayout
我是 Android 的新手,我正在尝试了解如何做到这一点:
- 我有一个带有 ScrollView 的 activity,里面有一个 LinearLayout (R.id.my_layout)
- 我需要以编程方式添加 TextView,所以我这样做了:
我通过 seContentView 加载主 XML 布局,我将 ScrollView 中的 LinearLayout 称为 "mLayout" 等等。
我从一个文件中加载了一个名称列表,并使用一个名为 populateList() 的函数我做了:
private void populateList() {
try {
for (final String team : mTeams) {
rCount++;
addRow(team);
}
}
addRow() 方法只是创建一个新的LinearLayout (mRow)、一个TextView、2 个Button,将TextView 和2 个Button 添加到LinearLayout,然后我使用addView 将新的mRow 添加到mLayout。
一切正常,但仅当我完成创建列表时才显示滚动视图(因此当 populateList() 结束时)。我想做的是按顺序逐行显示,以使活动看起来更好,并具有一些动画效果。
有没有办法做到这一点?
我希望我能够解释它:-)
谢谢
new Thread(new Runnable() { // i am creating the new thread
@Override
public void run() {
// so call populateList() function here
}
}).start();
对于您的 addRow(String string)
方法,您调用 View.addView();
的地方以这种方式编辑它,并将以下代码放入您的 addRow(String string)
方法
View.post(new new Runnable() {// view here is mlayout the scrollView.
@Override
public void run() {
mlayout.addView(yourview); // note yourview should be final,
//eclipse might help you with that
}
});
记得全局声明mlayout
,这样你就不必附加final
我是 Android 的新手,我正在尝试了解如何做到这一点: - 我有一个带有 ScrollView 的 activity,里面有一个 LinearLayout (R.id.my_layout) - 我需要以编程方式添加 TextView,所以我这样做了:
我通过 seContentView 加载主 XML 布局,我将 ScrollView 中的 LinearLayout 称为 "mLayout" 等等。 我从一个文件中加载了一个名称列表,并使用一个名为 populateList() 的函数我做了:
private void populateList() {
try {
for (final String team : mTeams) {
rCount++;
addRow(team);
}
}
addRow() 方法只是创建一个新的LinearLayout (mRow)、一个TextView、2 个Button,将TextView 和2 个Button 添加到LinearLayout,然后我使用addView 将新的mRow 添加到mLayout。 一切正常,但仅当我完成创建列表时才显示滚动视图(因此当 populateList() 结束时)。我想做的是按顺序逐行显示,以使活动看起来更好,并具有一些动画效果。 有没有办法做到这一点? 我希望我能够解释它:-) 谢谢
new Thread(new Runnable() { // i am creating the new thread
@Override
public void run() {
// so call populateList() function here
}
}).start();
对于您的 addRow(String string)
方法,您调用 View.addView();
的地方以这种方式编辑它,并将以下代码放入您的 addRow(String string)
方法
View.post(new new Runnable() {// view here is mlayout the scrollView.
@Override
public void run() {
mlayout.addView(yourview); // note yourview should be final,
//eclipse might help you with that
}
});
记得全局声明mlayout
,这样你就不必附加final