我对Android很新,但不是编程。拥有良好多年的嵌入式Linux经验。 我发现奇怪的是,要做一个非常简单的任务,比如在计时器上更新列表视图,我无法找到任何文档,并且源代码是如此交错的类,我觉得花2-3天很奇怪谷歌搜索更新计时器列表非常基本的东西。它有多难,但运气不好我无法找到一个样品.....请帮忙。
我尝试做的非常简单,我正在编写一个具有计时器的Activity,计时器从HTTP GET读取状态值并将其显示在列表中。
首先我创建了一个ListView,然后附加了一个ArrayAdapter,其中包含0个元素。 在我的计时器中,我正在执行以下操作
//Timer run code
public void run() {
strng = GetStatus()
adapter.add(strng);
adapter.notifyDataSetChanged();
}
但它根本不起作用。
任何人都可以帮我一个样本......或者在GOOGLE的某个人请提供一些相当基本的东西。
谢谢
答案 0 :(得分:1)
我设法让它运行,这里是一个小代码。 请看看修改游戏。我很快就会创建一个博客来提供这些样本......
现在它的工作非常基础,如果我想修改它 (A)在适配器的特定位置更换弦线有多难/容易。现在我正在使用没有任何替换功能的ArrayAdapter。为什么:(? (B)如果我必须创建服务并让我的服务更新字符串值[]。这是怎么做的?我读到了意图,但由于服务和活动在同一个应用程序中,不能有全局数据? (三)关于java / android的一点,你为什么写函数定义是一个新的调用。是不是很难调试和不正确的代码方式?
public class ScreenOne extends Activity {
protected ListView mylist;
protected ArrayList<String> strlist;
protected ArrayAdapter<String> adapter;
protected TimerTask ttask;
protected int ctr =0;
protected Timer timer;
protected String[] values = new String[] { "XYAndroid", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux",
"OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2",
"Android", "iPhone", "WindowsMobile" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_one);
mylist = (ListView) findViewById(R.id.s1ListView);
strlist = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strlist);
mylist.setAdapter(adapter);
Timer t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(
new TimerTask()
{
@Override
public void run()
{
runOnUiThread(
new Runnable() {
@Override
public void run() {
if(ctr < values.length) {
adapter.add(values[ctr]);
ctr++;
}
}
});
}
}
,
0,
500);
}
答案 1 :(得分:0)
以下是如何使用Android Timer的非常简单的基本示例:
您可以将正在运行的代码放在run()
内,并使用myTimer.schedule()
函数中的参数设置时间值。