每隔一段时间,输入一个新的 Activity 需要更新一些值,比如说几个TextView
s。因此,假设我在启动 Activity 的 n String
s 中写入了 n TextView
s。
哪一种是保证良好性能和提供“干净代码”的最佳方法?
变体 1(我实际应用的方式):我将单个TextView
变量“tempText”声明为全局变量,并将 TextView 分配给该变量(或者使用额外的方法)。或者,a) 在 中执行整个过程onCreate()
,而 b) 在名为 eg 的方法中处理所有内容updateTextViews()
(...)
public class MyActivity extends Activity{
private TextView tempText;
public onCreate(Bundle icicle){
(...)
tempText = (TextView) findViewById(R.id.tv_1);
tempText.setText(string_1);
tempText = (TextView) findViewById(R.id.tv_2);
tempText.setText(string_2);
(...)
tempText = (TextView) findViewById(R.id.tv_n);
tempText.setText(string_n);
}
}
变体 2:我将单个TextView
变量“tempText”声明为onCreate()
或相应方法中的变量,并将 TextView 分配给该变量以更新。其余与变体 1 类似。
(...)
public class MyActivity extends Activity{
public onCreate(Bundle icicle){
(...)
private TextView tempText;
tempText = (TextView) findViewById(R.id.tv_1);
tempText.setText(string_1);
tempText = (TextView) findViewById(R.id.tv_2);
tempText.setText(string_2);
(...)
tempText = (TextView) findViewById(R.id.tv_n);
tempText.setText(string_n);
}
}
变体 3:TextView
我为每个TextView
更新
声明了一个全局变量。据我所知,这需要更多的 RAM 空间,但我不知道对速度的影响。onCreate()
同样在这里,在(a))或单独的方法(b))中处理它有区别吗?
(...)
public class MyActivity extends Activity{
private TextView tempText_1;
private TextView tempText_2;
(...)
private TextView tempText_n;
public onCreate(Bundle icicle){
(...)
tempText_1 = (TextView) findViewById(R.id.tv_1);
tempText_1.setText(string_1);
tempText_2 = (TextView) findViewById(R.id.tv_2);
tempText_2.setText(string_2);
(...)
tempText_n = (TextView) findViewById(R.id.tv_n);
tempText_n.setText(string_n);
}
}
变体 4:
我声明了一个TextView
变量,以便在处理此问题的或相应的方法中TextView
更新。onCreate()
其余的类似于 Variant 3?
(...)
public class MyActivity extends Activity{
public onCreate(Bundle icicle){
(...)
private TextView tempText_1;
private TextView tempText_2;
(...)
private TextView tempText_n;
tempText_1 = (TextView) findViewById(R.id.tv_1);
tempText_1.setText(string_1);
tempText_2 = (TextView) findViewById(R.id.tv_2);
tempText_2.setText(string_2);
(...)
tempText_n = (TextView) findViewById(R.id.tv_n);
tempText_n.setText(string_n);
}
}
哪一种是“最好”的方法?变体 1 和 2 仅在 RAM 中保留一个内存地址并使用它,而根据 Robert C. Martins “清洁代码”的说法,这些变量确实是模棱两可的。选项 3 和 4 正好相反。但对于其余部分,我不太清楚其他影响。