#android
#Android
Вопрос:
Я новичок в программировании на Android, и я почти уверен, что это то, что мне нужно. У меня есть страница, которая загружается при запуске, на которой есть счетчик, несколько текстовых полей редактирования и две кнопки. Одна кнопка удаляет поля и сбрасывает счетчик. Другая кнопка должна загрузить новое действие (я думаю), и мне нужно, чтобы то, что было в EditTexts и spinner, было загружено этим.
Прямо сейчас у меня есть тост, чтобы я мог проверить, что все было схвачено правильно. Вот мое действие, которое у меня есть сейчас:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class directoryApp extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.searchscreen);
//Declaring these so I can use them when the button is clicked.
final Spinner depts = (Spinner) findViewById(R.id.dept);
final ArrayAdapter<CharSequence> deptsAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item);
deptsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
final EditText fname = (EditText) findViewById(R.id.fname);
final EditText lname = (EditText) findViewById(R.id.lname);
final EditText aim = (EditText) findViewById(R.id.aim);
final EditText phone = (EditText) findViewById(R.id.phone);
depts.setAdapter(deptsAdapter);
for(int i = 0 ; i < fillSpinner().length ; i ){
deptsAdapter.add(fillSpinner()[i]);
}
//Search Button on click, makes a "toast" message with grabbed web string and whatever was entered into the fields.
findViewById(R.id.search).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Here is where the search button does it's thing.
Toast.makeText(BNYDirectory.this, fname.getText() " " lname.getText() " " aim.getText() " " phone.getText() " " depts.getSelectedItem() " " deptIDs()[(int)depts.getSelectedItemId()], Toast.LENGTH_SHORT).show();
}
});
}
}
Мне нужно передать fname.getText(), lname.getText(), aim.getText(), phone.getText() и deptIDs()[(int)depts.getSelectedItemId()] (все это я получаю в виде строк).
Каков наилучший способ перехода на следующую страницу (которую я буду использовать для получения результатов и отображения)? Также возможно, что при нажатии на поиск я могу заставить его извлекать результаты из Интернета и помещать их в массив строк и передавать только это, но я бы предпочел этого не делать.
Какой-нибудь пример, который я мог бы использовать?
Ответ №1:
Вы создаете намерение, указывающее имя класса для второго действия. Затем вы добавляете дополнительные данные к намерению, причем каждая часть данных связана с уникальной строкой, которая служит ключом для поиска данных. Затем новое действие может извлекать данные, используя те же ключи. Смотрите пример кода в разделе «Открытие нового экрана» в разделе «Общие задачи» документации по ресурсам.
Комментарии:
1. Спасибо, я не знал о разделе общих задач!