Я пытаюсь добавить 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>
Почему вы используете редактировать текст во втором действии, вы просто используете текстовое представление для отображения текста. – user7176550
Спасибо, вместе с отображением текста, введенного в первом действии во втором действии, я хочу, чтобы пользователь ответил заполнить пробел _ замененным на edittext. – Param
Чтобы сделать это, вы не добавляете EditText в TextView, я думаю, что самый простой способ добиться этого - создать так много TextViews, поскольку символы имеют слово, а вместо TextView вы поместите EditText, где пользователь должен сделать его вклад. Другим способом является создание пользовательского представления, расширяющего EditText или TextView, или даже создание его с нуля. –