用java代码 编写一个安卓app 功能包含 添加候选人 进行投票 显示结果
时间: 2024-04-20 11:24:38 浏览: 21
当然,我可以为你提供一个基本的Android app代码示例,该示例具有添加候选人、进行投票和显示结果的功能。以下是一个基本的投票Android app的代码框架:
首先,在`MainActivity.java`文件中,我们将处理应用程序的主要逻辑和用户界面:
```java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private EditText candidateNameEditText;
private Button addCandidateButton;
private EditText voteEditText;
private Button voteButton;
private TextView resultTextView;
private Map<String, Integer> candidates;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
candidateNameEditText = findViewById(R.id.editTextCandidate);
addCandidateButton = findViewById(R.id.buttonAddCandidate);
voteEditText = findViewById(R.id.editTextVote);
voteButton = findViewById(R.id.buttonVote);
resultTextView = findViewById(R.id.textViewResult);
candidates = new HashMap<>();
addCandidateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String candidateName = candidateNameEditText.getText().toString();
addCandidate(candidateName);
candidateNameEditText.setText("");
}
});
voteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String candidateName = voteEditText.getText().toString();
voteForCandidate(candidateName);
voteEditText.setText("");
}
});
}
public void addCandidate(String candidateName) {
if (!candidateName.isEmpty()) {
candidates.put(candidateName, 0);
resultTextView.setText("");
}
}
public void voteForCandidate(String candidateName) {
if (!candidateName.isEmpty()) {
if (candidates.containsKey(candidateName)) {
int currentVotes = candidates.get(candidateName);
candidates.put(candidateName, currentVotes + 1);
resultTextView.setText("");
} else {
resultTextView.setText("Invalid candidate!");
}
}
}
public void displayResults(View view) {
StringBuilder result = new StringBuilder();
for (Map.Entry<String, Integer> entry : candidates.entrySet()) {
result.append(entry.getKey()).append(": ").append(entry.getValue()).append(" votes\n");
}
resultTextView.setText(result.toString());
}
}
```
然后,在`activity_main.xml`文件中,我们可以设置应用程序的用户界面布局。这是一个简单的示例布局,你可以根据自己的需求进行更改和扩展:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingTop="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/textViewCandidate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Candidate Name:"
android:layout_marginTop="16dp"/>
<EditText
android:id="@+id/editTextCandidate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textViewCandidate"
android:layout_marginTop="16dp"/>
<Button
android:id="@+id/buttonAddCandidate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editTextCandidate"
android:layout_marginTop="16dp"
android:text="Add Candidate"/>
<TextView
android:id="@+id/textViewVote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vote for Candidate:"
android:layout_below="@id/buttonAddCandidate"
android:layout_marginTop="16dp"/>
<EditText
android:id="@+id/editTextVote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textViewVote"
android:layout_below="@id/buttonAddCandidate"
android:layout_marginTop="16dp"/>
<Button
android:id="@+id/buttonVote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vote"
android:layout_below="@id/editTextVote"
android:layout_marginTop="16dp"/>
<Button
android:id="@+id/buttonDisplayResults"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Display Results"
android:onClick="displayResults"
android:layout_below="@id/buttonVote"
android:layout_marginTop="16dp"/>
<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="@android:color/black"
android:layout_below="@id/buttonDisplayResults"
android:layout_marginTop="16dp"/>
</RelativeLayout>
```
以上代码提供了一个基本的投票Android app,它包含添加候选人、进行投票和显示结果的功能。你可以根据自己的需求进行进一步的定制和扩展。希望这对你有所帮助!如果你有任何其他问题,请随时提问。