为每个SharedPreference动态创建一个表行或TextView?

时间:2015-02-15 20:28:38

标签: android xml sharedpreferences relativelayout tablerow

我有下一个xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:scrollbars="none"
    tools:context="info.senyk.ustat3.StatActivity"
    android:layout_above="@+id/editTextLogin"
    android:background="#ffff2341"
    android:id="@+id/scrollView">


</ScrollView>
<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/Login"
    android:id="@+id/buttonLogin"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="0dp"
    android:layout_marginStart="55dp"
    android:layout_marginRight="0dp"
    android:layout_marginBottom="0dp"
    android:onClick="onClickButtonLogin" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextLogin"
    android:ems="4"
    android:hint="@string/Login"
    android:layout_above="@+id/buttonLogin"
    android:layout_alignLeft="@+id/scrollView"
    android:layout_alignStart="@+id/scrollView"
    android:inputType="text" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextAt"
    android:hint="\@"
    android:editable="false"
    android:enabled="false"
    android:inputType="none"
    android:layout_below="@+id/scrollView"
    android:layout_toLeftOf="@+id/editTextHostname"
    android:layout_toStartOf="@+id/editTextHostname" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextHostname"
    android:hint="@string/Hostname"
    android:layout_below="@+id/scrollView"
    android:layout_toLeftOf="@+id/editTextColon"
    android:layout_toStartOf="@+id/editTextColon"
    android:inputType="text" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextColon"
    android:hint="@string/Colon"
    android:layout_below="@+id/scrollView"
    android:layout_toLeftOf="@+id/editTextPort"
    android:layout_toStartOf="@+id/editTextPort"
    android:inputType="none" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextPort"
    android:text="@string/Port22"
    android:inputType="number"
    android:layout_below="@+id/scrollView"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextPassword"
    android:ems="4"
    android:hint="@string/Password"
    android:layout_below="@+id/scrollView"
    android:layout_toRightOf="@+id/editTextColon0"
    android:layout_toLeftOf="@+id/editTextAt"
    android:layout_toStartOf="@+id/editTextAt"
    android:inputType="textPassword" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editTextColon0"
    android:hint="@string/Colon"
    android:layout_below="@+id/scrollView"
    android:layout_toRightOf="@+id/editTextLogin"
    android:layout_toEndOf="@+id/editTextLogin"
    android:inputType="none" />

我有三个editText用于登录,密码和主机名以及按钮登录

在屏幕顶部,我有ScrollView,我需要保存凭据。但是每次用户按下登录按钮时,我都希望保存所有不同的主机名(如历史记录)。

我的意思是需要为每个凭据动态创建一个表行或TextView吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不是Spinner更好吗?它可以定制为具有多行文本。

对于您当前的布局,我会使用ListView而不是scrollView,您可以通过将元素添加到用于跟踪历史记录然后调用的ArrayList来以编程方式添加元素

adapter.notifyDataSetChanged();

顺便说一句,你甚至可以将所说的ArrayList保存到SharedPreferences,或者将数据库变成一个String(并返回),因为ArrayList实现了Serializable