У меня есть «EditText» под названием Inputs1 для ввода значений для сравнения с массивом example1, используя оператор «If».
Массив с именем example1 имеет следующие значения: 5, 10, 15, 20, 25, 30.
Outputs1 используется для отображения значений из массива example1
Кроме того, массив с именем example2 имеет следующие значения: 105, 110, 115, 120, 125, 130.
Outputs2 используется для отображения значений из массива example2 с использованием значения индекса из массива example1.
Пример:
The
Inputs1value is: 20
Outputs1displays the value: 20
Outputs2should display the value: 120
Я дошел до того, что сделал Outputs1 для отображения значения: 20, но я не могу получить код для Outputs2, отображающий значение: 120.
Пожалуйста, помогите мне кто-нибудь с вышеуказанным опытом или знаниями?
Спасибо.
Код:
public class exampleOutput extends AppCompatActivity {
Editable text;
EditText Inputs1;
TextView Outputs1;
TextView Outputs2;
Integer arrayIndex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example_output);
Outputs1 = (TextView) findViewById(R.id.Outputs1);
Inputs1 = (EditText) findViewById(R.id.Inputs1);
text = Inputs1.getText();
Outputs2 = (TextView) findViewById(R.id.Outputs2);
}
final String[] example1 = {("5"), ("10"), ("15"), ("20"), ("25"), ("30")};
final String[] example2 = {("105"), ("110"), ("115"), ("120"), ("125"), ("130")};
public void displayExample(View v) {
if (Arrays.asList(example1).contains(Inputs1.getText().toString())) {
Outputs1.setText("You typed in: " + text + ", which is correct!");
arrayIndex = (Arrays.asList(example1).indexOf(Inputs1.getText().toString()));
Outputs2.setText("Your second number is: [The value from the second array] " + ", the index is: " + arrayIndex + "!");
} else {
Outputs1.setText("Please type in a number 1-5.");
Outputs2.setText("");
}
}
}
какой у вас текущий код?




ты можешь использовать
int indexFromLabel1 = array1.indexOf(valueWhoseIndexYouNeed);
Затем, если я правильно понял, вы хотите показать значение этого индекса в Array2. Это вы, должно быть, уже поняли
int valueFromArray2 = array2[indexFromLabel1 ];
Предполагается, что я правильно понял сценарий.
Еще лучше, вы должны применить проверку, чтобы увидеть, существует ли требуемый индекс в Array2, например
if ( indexFromLabel1 < array2.length() ){
int valueFromArray2 = array2[indexFromLabel1 ];
}else {
//Do your logic
}
Это сработало из-за array2[indexFromLabel1 ], спасибо за помощь, я пытался понять, как распечатать значение.
рад это слышать.
Похоже, вы никогда не печатаете значение из массива example2
Попробуйте изменить эту строку:
Outputs2.setText("Your second number is: [The value from the second array] " + ", the index is: " + arrayIndex + "!");
к этому:
Outputs2.setText("Your second number is: [The value from the second array] " + example2[arrayIndex] + ", the index is: " + arrayIndex + "!");
Я пытался распечатать значение, но никогда не знал, как это работает, теперь это работает благодаря + example2[arrayIndex], спасибо, что помогли мне с этим. К сожалению, первым ответил другой человек, поэтому я не могу назвать это правильным ответом.
Опубликуйте свой код, чтобы узнать, как получить ценность для Label1.