我试图弄清楚如何将对象的toString传递给不同的TextViews。下面我有我现在正在做的事情,它将我的EditText输入从主活动发送到显示活动,但它只针对我编码它的第一个字段。问题是,我无法弄清楚如何将代码推送到单独的TextViews。
package example.com.inclassweek32;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import static android.provider.AlarmClock.EXTRA_MESSAGE;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button button;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonSubmit);
editText = (EditText) findViewById(R.id.editTextName);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, DisplayActivity.class);
User user = new User();
user.setName(editText.getText().toString());
intent.putExtra("NAME", user);
startActivity(intent);
}
}
--------------------------------------------------------------------
package example.com.inclassweek32;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class DisplayActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
Intent intent = getIntent();
User user = (User) intent.getSerializableExtra("NAME");
textView = findViewById(R.id.textViewName);
textView.setText(user.toString());
}
}
--------------------------------------------------------------------
package example.com.inclassweek32;
import java.io.Serializable;
public class User implements Serializable {
String name;
String email;
@Override
public String toString() {
return name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
答案 0 :(得分:0)
我添加了下面的代码来解决这个问题。我必须为每个值设置一个新的textview和edittext。
package example.com.inclassweek32;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import org.w3c.dom.Text;
public class DisplayActivity extends AppCompatActivity {
TextView textView;
TextView textView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
Intent intent = getIntent();
User user = (User) intent.getSerializableExtra("NAME");
textView = findViewById(R.id.textViewName);
textView.setText(user.getName().toString());
textView1 = findViewById(R.id.textViewEmail);
textView1.setText(user.getEmail().toString());
}
}
--------------------------------------------
package example.com.inclassweek32;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import static android.provider.AlarmClock.EXTRA_MESSAGE;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button button;
EditText editText;
EditText editText1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonSubmit);
editText = (EditText) findViewById(R.id.editTextName);
editText1 = (EditText) findViewById(R.id.editTextEmail);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, DisplayActivity.class);
User user = new User();
user.setName(editText.getText().toString());
user.setEmail(editText1.getText().toString());
intent.putExtra("NAME", user);
intent.putExtra("EMAIL", user);
startActivity(intent);
}
}