如何循环TextView和PlainText?

时间:2017-12-26 18:01:02

标签: android

当新选项出现在HashMAp中时,我总是在xml文件中编辑文本视图和纯文本。但是,我应该在Hashmap中提供新选项或更多选项,并且应该自动更改界面中的新选项。

例如,地图中有三个选项

gateway_ip:162.198.23.10

net_mask:178.465.37.34

server_ip:243.798.76.59

我应该能够在HashMap中添加更多选项或编辑选项,并且应该在这样的界面中自动更新。

gateway_ip:162.198.23.10

net_mask:178.465.37.34

server_ip:243.798.76.59

网址:345.678.456.34

ip:901.234.123.45

基本上我应该更改应该在界面中自动更新的hashmap。谁能在这帮助我?

[界面图像] [1]

/ ------------------------- MainActivity.java --------------- ----------- /

package com.puchagmail.ganesh.trail2;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.EditText;

import android.widget.TextView;

import java.util.HashMap;

import static android.R.attr.data;

public class MainActivity extends AppCompatActivity {

TextView gateWay ;
TextView netMask;
TextView serverIp;

EditText gW;
EditText nM;
EditText sIp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    gateWay = (TextView) findViewById(R.id.textView);
    netMask = (TextView) findViewById(R.id.textView2);
    serverIp = (TextView) findViewById(R.id.textView3);

    gW = (EditText) findViewById(R.id.editText );
    nM = (EditText) findViewById(R.id.editText2);
    sIp = (EditText) findViewById(R.id.editText3 );
    setValues(dummyValues());
}


    public void setValues(HashMap<String,String>data){

    gW.setText(data.get("gateway_ip"));
    nM.setText(data.get("net_mask"));
    sIp.setText(data.get("server_ip"));


}

public HashMap<String,String> dummyValues(){
    HashMap<String,String> data = new HashMap<>();

    data.put("gateway_ip","162.198.23.10");
    data.put("net_mask","178.465.37.34");
    data.put("server_ip","243.798.76.59");
    return data;
}


}

/ --------- ---------- activity_main.xml中 /

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.puchagmail.ganesh.trail2.MainActivity">

<TextView
    android:id="@+id/textView2"
    android:layout_width="66dp"
    android:layout_height="39dp"
    android:text="net_mask"
    android:layout_marginLeft="24dp"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginTop="34dp"
    app:layout_constraintTop_toBottomOf="@+id/textView" />

<TextView
    android:id="@+id/textView"
    android:layout_width="77dp"
    android:layout_height="39dp"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="96dp"
    android:text="gateway_ip"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="67dp"
    android:layout_height="37dp"
    android:layout_marginLeft="24dp"
    android:layout_marginTop="34dp"
    android:text="server_ip"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView2"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="8dp"
    app:layout_constraintVertical_bias="0.0" />

<EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="44dp"
    android:layout_marginTop="78dp"
    android:ems="10"
    android:inputType="textPersonName"
    android:text="192.168.85.100"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintLeft_toRightOf="@+id/textView"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="44dp"
    android:layout_marginTop="10dp"
    android:ems="10"
    android:inputType="textPersonName"
    android:text="254.100.34.567"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintLeft_toRightOf="@+id/textView3"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText2"
    app:layout_constraintVertical_bias="0.078" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="44dp"
    android:layout_marginTop="32dp"
    android:ems="10"
    android:inputType="textPersonName"
    android:text="465.798.86.345"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintLeft_toRightOf="@+id/textView2"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText" />

    </android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:0)

你可以使用android双向数据绑定,使用它可以实现以下目的。

1)如果你手动更改hashmap,那么UI会自动更新。 2)如果将在编辑文本中输入任何将在hashmap和UI上更新的内容。

因此您可以使用以下链接了解数据绑定。

https://developer.android.com/topic/libraries/data-binding/index.html