#java #android
Вопрос:
Я хочу создать представление прокрутки списка категорий в Android studio с использованием java. У меня есть truble, чтобы понять, как передать значение из TextView в anthor TextView с тем же значением в другой деятельности.
activity_first.xml
<TextView
android:id="@ id/PersonName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColorHint="@color/black"
android:background="@android:color/transparent"
android:text="Name" />
FirstActivity.java
public class FirstActivity extends AppCompatActivity {
TextView PersonName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
PersonName = (TextView)findViewById(R.id.PersonName);
PersonName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent p = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(p);
}
});
}
}
Во втором упражнении у меня есть вид прокрутки.
activity_second.xml
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@ id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Father" />
<TextView
android:id="@ id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Mother" />
</LinearLayout>
</ScrollView>
в activity_second.xml когда я нажму на TextView, он вернет меня со значением Father (id:TextView) в FirstActivity и изменит TextView (id:имя пользователя) на father, и если я сделаю это со значением mother (id:textView2), он выполнит то же действие и вернет меня в FirstActivity.
Ответ №1:
Вы можете сделать это с помощью метода getExtra
SecondActivity.java
public class SecondActivity extends AppCompatActivity {
TextView mother,father;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second.xml);
mother = (TextView)findViewById(R.id.textView);
father = (TextView)findViewById(R.id.textView2);
mother.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("id", seciliodaid);
bundle.putInt("type", 0);
Intent newIntent;
newIntent = new Intent(SecondActivity.this, FirstActivity.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);
}
});
father.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("id", seciliodaid);
bundle.putInt("type", 1);
Intent newIntent;
newIntent = new Intent(SecondActivity.this, FirstActivity.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);
}
});
}
}
FirstActivity.java
public class FirstActivity extends AppCompatActivity {
TextView PersonName;
Bundle data;
int type=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
PersonName = (TextView)findViewById(R.id.PersonName);
try {
data = getIntent().getExtras();
type = data.getInt("type");
if(type==0){
PersonName.setText("Mother");
}else if(type==1){
PersonName.setText("Father");
}
}catch (Exception e){
}
PersonName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent p = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(p);
}
});
}
}
Ответ №2:
Хотя вы можете использовать Bundle
для этого (как следует из другого ответа), если вам просто нужны строки, вы можете сделать следующее (я считаю, что это проще, но это будет зависеть от вашей реализации):
В кнопке onClickListener
FirstActivity.java:
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("Mother", mother.getText().toString());
intent.putExtra("Father", father.getText().toString());
В текстовом представлении onClickListener
SecondActivity.java:
String mother = getIntent().getStringExtra("Mother");
String father = getIntent().getStringExtra("Father");