Android 检查微调器以防止它们选择相同的项目
我计划对微调器进行检查,以确保它们没有选择相同的项目 这是我的密码Android 检查微调器以防止它们选择相同的项目,android,spinner,Android,Spinner,我计划对微调器进行检查,以确保它们没有选择相同的项目 这是我的密码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:orientation="vertical" android:layout_height="fill_parent"> <LinearLayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/StudentName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please select Course and Grade"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<Spinner
android:id="@+id/SpinnerC1"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course"/>
<Spinner
android:id="@+id/SpinnerG1"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<Spinner
android:id="@+id/SpinnerC2"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course"/>
<Spinner
android:id="@+id/SpinnerG2"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<Spinner
android:id="@+id/SpinnerC3"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course" />
<Spinner
android:id="@+id/SpinnerG3"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<Spinner
android:id="@+id/SpinnerC4"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course"/>
<Spinner
android:id="@+id/SpinnerG4"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="bottom|center"
android:weightSum="1"
>
<Spinner
android:id="@+id/SpinnerC5"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course"/>
<Spinner
android:id="@+id/SpinnerG5"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:orientation="horizontal" >
<Spinner
android:id="@+id/SpinnerC6"
android:layout_width="221dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:entries="@array/course"/>
<Spinner
android:id="@+id/SpinnerG6"
android:layout_width="83dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:entries="@array/grade"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate GPA"
android:onClick="calculateGPA" />
</LinearLayout>
</LinearLayout>
然后我的整个java代码的这一页将
package com.example.gpapredict;
import java.text.DecimalFormat;
import java.util.ArrayList;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class Selection extends ActionBarActivity {
String stuName,stuId, gpaScore, defCourse,gradeA,gradeB,gradeC,gradeD,gradeF,gradeG;
ArrayList<String> check;
double cor,score,gpa=999;
TextView tvName;
Intent i2;
Spinner SpinnerC1, SpinnerC2, SpinnerC3, SpinnerC4, SpinnerC5, SpinnerC6, SpinnerG1, SpinnerG2, SpinnerG3, SpinnerG4, SpinnerG5, SpinnerG6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selection);
stuName = getIntent().getStringExtra("name");
stuId = getIntent().getStringExtra("stuId");
tvName = (TextView)findViewById(R.id.StudentName);
tvName.setText("Hi," + stuName);
}
public void calculateGPA(View v){
//retrieve data from spinners
SpinnerC1 = (Spinner)findViewById(R.id.SpinnerC1);
SpinnerC2 = (Spinner)findViewById(R.id.SpinnerC2);
SpinnerC3 = (Spinner)findViewById(R.id.SpinnerC3);
SpinnerC4 = (Spinner)findViewById(R.id.SpinnerC4);
SpinnerC5 = (Spinner)findViewById(R.id.SpinnerC5);
SpinnerC6 = (Spinner)findViewById(R.id.SpinnerC6);
SpinnerG1 = (Spinner)findViewById(R.id.SpinnerG1);
SpinnerG2 = (Spinner)findViewById(R.id.SpinnerG2);
SpinnerG3 = (Spinner)findViewById(R.id.SpinnerG3);
SpinnerG4 = (Spinner)findViewById(R.id.SpinnerG4);
SpinnerG5 = (Spinner)findViewById(R.id.SpinnerG5);
SpinnerG6 = (Spinner)findViewById(R.id.SpinnerG6);
//save the data into string type
String[] course = new String[6];
String[] grade = new String[6];
course[0] = SpinnerC1.getSelectedItem().toString();
course[1] = SpinnerC2.getSelectedItem().toString();
course[2] = SpinnerC3.getSelectedItem().toString();
course[3] = SpinnerC4.getSelectedItem().toString();
course[4] = SpinnerC5.getSelectedItem().toString();
course[5] = SpinnerC6.getSelectedItem().toString();
grade[0] = SpinnerG1.getSelectedItem().toString();
grade[1] = SpinnerG2.getSelectedItem().toString();
grade[2] = SpinnerG3.getSelectedItem().toString();
grade[3] = SpinnerG4.getSelectedItem().toString();
grade[4] = SpinnerG5.getSelectedItem().toString();
grade[5] = SpinnerG6.getSelectedItem().toString();
//check for no same course
defCourse = "Select Course";
check = new ArrayList<String>();
check.add(course[0]);
for (String checkCourse:check ){
for (int c=1;c<6;c++){
if (checkCourse.equals(course[1])){
Toast.makeText(getApplicationContext(), "Cannot Proceed : Same course is selected", Toast.LENGTH_LONG).show();
return;
}
else if(course[c].equals(defCourse)) {
continue;
}else {
check.add(course[c]);
break;
}
}
}
//calculate score
gradeA="A";
gradeB="B";
gradeC="C";
gradeD="D";
gradeF="F";
gradeG="G";
//initialize value
score = 0.0;
cor=0.0;
for (int i=0;i<6;i++){
if(grade[i].equals(gradeA)){
score = score + 4.0;
cor++;
}else
if (grade[i].equals(gradeB)){
score = score + 3.0;
cor++;
}else
if (grade[i].equals(gradeC)){
score = score + 2.0;
cor++;
}else
if (grade[i].equals(gradeD)){
score = score + 1.0;
cor++;
}else
if (grade[i].equals(gradeF)){
score = score+0.0;
cor++;
}else{
score = score +0.0;
}
}
if (cor == 0.0){
cor++;
}
gpa = score/cor;
//set precision to 2 decimal places
DecimalFormat dec = new DecimalFormat("#0.00");
gpaScore = String.valueOf(dec.format(gpa));
Toast.makeText(getApplicationContext(), "okay", Toast.LENGTH_LONG).show();
i2 = new Intent(Selection.this,Result.class);
i2.putExtra("stuName",stuName);
i2.putExtra("stuId",stuId);
i2.putExtra("courseArray", course);
i2.putExtra("gradeArray", grade);
i2.putExtra("gpa", gpaScore);
startActivity(i2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.selection, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
package com.example.gpaprodict;
导入java.text.DecimalFormat;
导入java.util.ArrayList;
导入android.support.v7.app.ActionBarActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
公共类选择扩展了ActionBarActivity{
弦乐特技、stuId、gpaScore、defCourse、A级、B级、C级、分级、F级、G级;
数组列表检查;
双cor,得分,gpa=999;
文本视图tvName;
意图i2;
喷丝头C1、喷丝头C2、喷丝头C3、喷丝头C4、喷丝头C5、喷丝头C6、喷丝头G1、喷丝头G2、喷丝头G3、喷丝头G4、喷丝头G5、喷丝头G6;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selection);
stuName=getIntent().getStringExtra(“名称”);
stuId=getIntent().getStringExtra(“stuId”);
tvName=(TextView)findViewById(R.id.StudentName);
tvName.setText(“嗨,”+stuName);
}
公共区域(视图五){
//从微调器检索数据
喷丝头C1=(喷丝头)findViewById(R.id.喷丝头C1);
喷丝头C2=(喷丝头)findViewById(R.id.喷丝头C2);
喷丝头C3=(喷丝头)findViewById(R.id.喷丝头C3);
喷丝头C4=(喷丝头)findViewById(R.id.喷丝头C4);
喷丝头C5=(喷丝头)findViewById(R.id.喷丝头C5);
喷丝头C6=(喷丝头)findViewById(R.id.喷丝头C6);
喷丝头1=(喷丝头)findViewById(R.id.SpinnerG1);
喷丝头G2=(喷丝头)findViewById(R.id.SpinnerG2);
喷丝头3=(喷丝头)findViewById(R.id.喷丝头3);
喷丝头G4=(喷丝头)findViewById(R.id.SpinnerG4);
喷丝头G5=(喷丝头)findViewById(R.id.SpinnerG5);
喷丝头G6=(喷丝头)findViewById(R.id.喷丝头G6);
//将数据保存为字符串类型
字符串[]课程=新字符串[6];
字符串[]等级=新字符串[6];
课程[0]=喷丝头C1.getSelectedItem().toString();
课程[1]=喷丝头C2.getSelectedItem().toString();
课程[2]=喷丝头C3.getSelectedItem().toString();
课程[3]=喷丝头4.getSelectedItem().toString();
课程[4]=喷丝头C5.getSelectedItem().toString();
课程[5]=喷丝头c6.getSelectedItem().toString();
等级[0]=喷丝头1.getSelectedItem().toString();
等级[1]=喷丝头2.getSelectedItem().toString();
等级[2]=喷丝头3.getSelectedItem().toString();
等级[3]=喷丝头4.getSelectedItem().toString();
等级[4]=喷丝头5.getSelectedItem().toString();
等级[5]=喷丝头6.getSelectedItem().toString();
//检查没有相同的路线
defCourse=“选择课程”;
check=newarraylist();
检查。添加(课程[0]);
对于(字符串checkCourse:check){
对于(int c=1;c,在我看来,单击“继续”按钮时,应该有一个包含微调器的选定值的arraylist,然后检查arraylist是否有重复值。请尝试以下代码:
//check for no same course
defCourse = "Select Course";
ArrayList check = new ArrayList<String>();
check.add(defCourse);
for (int c=0;c<6;c++){
if (!check.contains(course[c])) {
check.add(course[c]);
}else{
Toast.makeText(getApplicationContext(), "Cannot Proceed : Same course is selected", Toast.LENGTH_LONG).show();
}
}
//检查是否没有相同的课程
defCourse=“选择课程”;
ArrayList检查=新建ArrayList();
检查。添加(除课程);
对于(int c=0;c我找到了我的解决方案
// check for no same course
defCourse = "Select course";
check = new ArrayList<String>();
check.add(course[0]);
for (int c = 1; c < 6; c++) {
if (check.contains(course[c])) {
Toast.makeText(getApplicationContext(),
"Cannot Proceed : Same course is selected",
Toast.LENGTH_LONG).show();
return;
} else if (course[c].equals(defCourse)) {
continue;
} else {
check.add(course[c]);
}
}
//检查是否没有相同的课程
defCourse=“选择课程”;
check=newarraylist();
检查。添加(课程[0]);
对于(int c=1;c<6;c++){
如果(检查包含(课程[c])){
Toast.makeText(getApplicationContext(),
“无法继续:选择了相同的课程”,
Toast.LENGTH_LONG).show();
返回;
}else如果(航向[c].等于(除航向)){
继续;
}否则{
检查。添加(课程[c]);
}
}
谢谢您的帮助:)谢谢您的帮助。但我必须已经选择了6门课程。如果我希望我的应用程序继续进行下一个活动,即使用户只选择了三门课程,该怎么办?