В настоящее время, когда я нажимаю кнопку, используется метод startActivityForResult ();Он находит ответ и возвращает.
Единственная проблема состоит в том, что, как только он возвращается, он снова запускает действие.Лично я считаю совершенно бессмысленным иметь метод, который можно запустить только один раз.Конечно, должен быть флаг, который можно присвоить методу, чтобы он мог запускаться столько раз, сколько нужно?
Я прочитал Javadoc, и он, похоже, не помогает, потому что он говорит, что егооднократное использование, разве я не читаю это неправильно?
В МОЕЙ ДЕЯТЕЛЬНОСТИ ПОИСКА:
private OnItemClickListener listListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
String text = (String) ((TextView) arg1).getText();
String[] selected = text.split(" - ");
selected[0] = selected[0].replace(' ', '_');
Log.w("COMPANY", selected[0]);
Log.w("PART", selected[1]);
Intent data = new Intent();
data.putExtra("key", selected);
setResult(RESULT_OK, data);
finish();
// startActivity(switch2);
}
};
В МОЕЙ ОСНОВНОЙ ДЕЯТЕЛЬНОСТИ (В СЛУЖЕБНОМ ФУНКЦИИ)
if (search.isPressed() && searchPressed == false) {
// show search list
Intent switch1 = new Intent(MainActivity.this, SearchActivity.class);
startActivityForResult(switch1, 0);
}
@Override
protected void onActivityResult(int req, int resp, Intent data) {
super.onActivityResult(req, resp, data);
searchPressed = true;
Bundle searched = data.getExtras();
String[] newItem = searched.getStringArray("key");
if (newItem[0].endsWith("_")) {
handleXML(1);
tv1.setText("Higher");
tv2.setText("Lower");
} else {
handleXML(0);
tv1.setText("Wear Resistance");
tv2.setText("Tougher");
}
competitors = h.competitors;
String[] piece = competitors.findCompanyParts(newItem);
assignMaterials(piece);
window.setVisibility(VISIBLE);
grade.setVisibility(INVISIBLE);
geo.setVisibility(INVISIBLE);
s1.setVisibility(INVISIBLE);
s2.setVisibility(INVISIBLE);
search.setVisibility(INVISIBLE);
help.setVisibility(INVISIBLE);
myTabHost.setCurrentTab(0);
}