在滚动视图中从共享首选项填充文本视图

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);
}
}