在滚动视图中从共享首选项填充文本视图
filling in text views from shared preferences in a scroll view
我对实现这个的最佳方法有点困惑,所以我来了。
我有一个带有标签和价格的共享偏好列表。我的应用程序,如果你愿意,可以说是一种计算器,我想以这种方式加载共享首选项,但坚持如何正确实施它,所以我以一种非常直白的方式写下来
加载共享首选项"item1"
如果为空则加载到 textView1
如果它已满然后尝试 textview2,
如果它已满然后尝试 textview3,
等等等等
我想要一个加载首选项 1 的函数,尝试将其加载到视图中,如果它已满,则尝试下一个文本视图,依此类推,直到找到空插槽。然后尝试下一个共享首选项
也许我看错了,但没有写出大量 if/else 语句来完成工作,我看不出有什么有意义的方法。
我在某处看到过一些代码可以在循环中递增 textview 数字,直到遇到一个案例,但似乎无法在任何地方回忆起它。如果实施得当,这将大大减少代码我是 sure.The 我正在创建的应用程序将显示来自另一个屏幕的所选项目列表,将所选项目保存到共享首选项,然后在结果屏幕上加载列表根据装载的物品所附的总和给出总数。
我没有实际的代码可以给你,因为我仍在制作这部分的原型,没有任何可靠的东西可以展示给你。
欢迎任何指点或任何正确方向的点头都会很方便。
谢谢大家
您可以通过java动态添加TextView。
public class DynamicAvtivity1 extends Activity {
TextView tv;
EditText et;
Button btn;
LinearLayout ll;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
i = 1;
ll = new LinearLayout(this);
ll.setOrientation(1);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT , LayoutParams.FILL_PARENT);
final LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT , LayoutParams.WRAP_CONTENT);
ll.setLayoutParams(lp);
tv = new TextView(this);
tv.setText("Enter Name");
tv.setLayoutParams(lp2);
ll.addView(tv);
et = new EditText(this);
et.setHint("Name");
et.setLayoutParams(lp2);
ll.addView(et);
btn = new Button(this);
btn.setLayoutParams(lp2);
btn.setText("Add Button");
btn.setLayoutParams(lp2);
ll.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@SuppressLint("NewApi") @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button b = new Button(getApplicationContext());
b.setLayoutParams(lp2);
b.setText("Button " + i++);
b.setTextColor(Color.BLACK);
b.setBackground(btn.getBackground());
ll.addView(b);
}
});
setContentView(ll);
}
}
我对实现这个的最佳方法有点困惑,所以我来了。
我有一个带有标签和价格的共享偏好列表。我的应用程序,如果你愿意,可以说是一种计算器,我想以这种方式加载共享首选项,但坚持如何正确实施它,所以我以一种非常直白的方式写下来
加载共享首选项"item1" 如果为空则加载到 textView1 如果它已满然后尝试 textview2, 如果它已满然后尝试 textview3, 等等等等
我想要一个加载首选项 1 的函数,尝试将其加载到视图中,如果它已满,则尝试下一个文本视图,依此类推,直到找到空插槽。然后尝试下一个共享首选项
也许我看错了,但没有写出大量 if/else 语句来完成工作,我看不出有什么有意义的方法。
我在某处看到过一些代码可以在循环中递增 textview 数字,直到遇到一个案例,但似乎无法在任何地方回忆起它。如果实施得当,这将大大减少代码我是 sure.The 我正在创建的应用程序将显示来自另一个屏幕的所选项目列表,将所选项目保存到共享首选项,然后在结果屏幕上加载列表根据装载的物品所附的总和给出总数。
我没有实际的代码可以给你,因为我仍在制作这部分的原型,没有任何可靠的东西可以展示给你。
欢迎任何指点或任何正确方向的点头都会很方便。
谢谢大家
您可以通过java动态添加TextView。
public class DynamicAvtivity1 extends Activity {
TextView tv;
EditText et;
Button btn;
LinearLayout ll;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
i = 1;
ll = new LinearLayout(this);
ll.setOrientation(1);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT , LayoutParams.FILL_PARENT);
final LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT , LayoutParams.WRAP_CONTENT);
ll.setLayoutParams(lp);
tv = new TextView(this);
tv.setText("Enter Name");
tv.setLayoutParams(lp2);
ll.addView(tv);
et = new EditText(this);
et.setHint("Name");
et.setLayoutParams(lp2);
ll.addView(et);
btn = new Button(this);
btn.setLayoutParams(lp2);
btn.setText("Add Button");
btn.setLayoutParams(lp2);
ll.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@SuppressLint("NewApi") @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button b = new Button(getApplicationContext());
b.setLayoutParams(lp2);
b.setText("Button " + i++);
b.setTextColor(Color.BLACK);
b.setBackground(btn.getBackground());
ll.addView(b);
}
});
setContentView(ll);
}
}