私はJavaとAndroidStudioに比較的慣れていないので、説明をいただければ幸いです。
ユーザーが誰かの名前を入力して、2つのチームのいずれかに割り当てることができるアプリを作成したいと思います。ユーザーが各チームに1つの名前を追加できるようになりましたが、各チームに複数の名前を追加する方法がわかりません。
私のXMLには、名前を入力するためのEditTextフィールド、チーム1またはチーム2に配置するための2つのボタン、および各チームのすべての人を表示するための2つのTextViewがあります。
<EditText
android:layout_width="106dp"
android:layout_height="wrap_content"
android:id="@+id/NameText"/>
<Button
android:id="@+id/Team1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Team 1"/>
<Button
android:id="@+id/Team2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Team 2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/team1_person1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/team1_person2"
android:layout_column="1"/>
これが私のJavaコードです。選択したボタンに応じて、チーム1またはチーム2のTextViewに入力した名前を追加するように各ボタンを設定しました。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button t1button = (Button) findViewById(R.id.Team1);
Button t2button = (Button) findViewById(R.id.Team2);
t1button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// --- find the text view --
EditText inputText = (EditText) findViewById(R.id.NameText);
String str = inputText.getText().toString();
TextView newText = (TextView) findViewById(R.id.team1_person1);
newText.setText( str);
}
});
t2button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// --- find the text view --
EditText inputText = (EditText) findViewById(R.id.NameText);
String str = inputText.getText().toString();
TextView newText = (TextView) findViewById(R.id.team1_person2);
newText.setText( str);
}
});
}
}
I know I'll need to add more TextViews for each new name, but I'm not sure how this works with only one button.
Thanks
append()を使用して、同じテキストビューに名前を追加できます。これにより、最初の回答で提案されているように、必要なtextviewオブジェクトの数が減ります。
t1button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// --- find the text view --
EditText inputText = (EditText) findViewById(R.id.NameText);
String str = inputText.getText().toString() + "\n"; // add new line so each person is on their own line
TextView newText = (TextView) findViewById(R.id.team1_person1);
newText.append(str); // change setText to append.
}
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加