2017-02-09 3 views
1

Я пытаюсь добавить EditText в пределах TextView. Моя идея состоит в том, чтобы построить два действия, в которых в первом действии заполнить пробелы, тип вопроса будет введен в EditText и будет отправлен во вторую активность при нажатии кнопки и во втором действии я хочу, чтобы текст, введенный в первом действии для отображения вместе с EditText вместо места, где ему нужно ответить.Как добавить EditText в TextView?

Моя идея состояла в том, чтобы заполнить пустой вопрос с помощью подчеркивания в месте, где нужно ответить в первом действии, и отобразить вопрос во втором действии, заменив знак подчеркивания на EditText.

первый код класса активности:

public class FirstActivity extends AppCompatActivity { 

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

    public void onButtonClick(View view) 
    { 
     if (view.getId() == R.id.button) 
     { 
      EditText editText = (EditText) findViewById(R.id.editText); 
      String text = editText.getText().toString(); 

      Intent intent = new Intent(this, Main2Activity.class); 
      intent.putExtra("mytext", text); 
      startActivity(intent); 


     } 
    } 

} 

Первый код макета деятельности:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".FirstActivity"> 


    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:ems="10" 
     android:layout_marginTop="48dp" 
     android:id="@+id/editText" 
     android:hint="Enter here" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <Button 
     android:text="Button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="100dp" 
     android:id="@+id/button" 
     android:onClick="onButtonClick" /> 
</RelativeLayout> 

Вторая активность Класс:

public class SecondActivity extends AppCompatActivity { 

    TextView textView; 

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

     TextView textview1 = (TextView) findViewById(R.id.textView); 

     int positionX = textview1.getLeft(); 
     int positionY = textview1.getRight(); 

     EditText ed = new EditText(this); 
     ed.setEnabled(false); 
     RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ed.getLayoutParams(); 
     params.leftMargin = positionX; 
     params.topMargin = positionY; 
     params.width = 30; 
     ed.setLayoutParams(params); 

     textview1.setText(getIntent().getStringExtra("mytext")); 

    } 

} 

Вторая активность Компоновка:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".SecondActivity"> 

<TextView 
    android:text="TextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginStart="33dp" 
    android:layout_marginTop="47dp" 
    android:id="@+id/textView" /> 
</RelativeLayout> 
+2

Почему вы используете редактировать текст во втором действии, вы просто используете текстовое представление для отображения текста. – user7176550

+0

Спасибо, вместе с отображением текста, введенного в первом действии во втором действии, я хочу, чтобы пользователь ответил заполнить пробел _ замененным на edittext. – Param

+1

Чтобы сделать это, вы не добавляете EditText в TextView, я думаю, что самый простой способ добиться этого - создать так много TextViews, поскольку символы имеют слово, а вместо TextView вы поместите EditText, где пользователь должен сделать его вклад. Другим способом является создание пользовательского представления, расширяющего EditText или TextView, или даже создание его с нуля. –

ответ

0

Вы можете разделить текст на символы подчеркивания, затем программно добавить TextViews и EditText.

Посмотрите на this.

Смежные вопросы