Мое требование: Перечислить весь маршрут продаж и выделить по умолчанию, Это должен быть первый вариант. Если продавец выбирает другую опцию (не выбранную по умолчанию), тогда должно появиться всплывающее окно. Всплывающее окно содержит одну форму, она разговаривает с DB.After представить форму всплывающего окна, она возвращает предыдущий экран, ему нужно разрешить идти в другую позицию.
Смотрите мой код
Этот начальный список Деятельность:
ArrayList<Object> routeList = getWmRoute();
ArrayList<String> routhPath = new ArrayList<String>();
for(int i = 0; i<routeList.size();i++){
routhPath.add(((WMRoute) routeList.get(i)).getDescription());
}
ArrayAdapter ad = new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,routhPath);
setListAdapter(ad);
final ListView list=getListView();
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setItemsCanFocus(true);
list.setTextFilterEnabled(true);
list.setItemChecked(0,true);
list.setSelection(0);
Это метод слушателя
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
if(position !=0 ){
Bundle bundle = new Bundle();
int postion = position;
String aString = Integer.toString(postion);
bundle.putString("positon", aString);
Intent showContent = new Intent(getApplicationContext(),SalesRouteDevitionActivity.class);
// startActivityForResult(showContent,0);
startActivity(showContent);
}
}
Это мой класс SalesRouteDevitionActivity
array_spinner=new String[2];
array_spinner[0]="Rain";
array_spinner[1]="Floods";
Bundle bundle = this.getIntent().getExtras();
param1 = bundle.getString("param1");
Spinner s = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, array_spinner);
s.setAdapter(adapter);
final Button button = (Button) findViewById(R.id.submit);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(SalesRouteDevitionActivity.this, "Beep Bop", Toast.LENGTH_SHORT).show();
Intent showContent = new Intent(getApplicationContext(),SalesRouteActivity.class);
Bundle bundle = new Bundle();
bundle.putString("position", param1);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
startActivity(showContent);
}
});
Это мой файл манифеста
<activity android:theme="@android:style/Theme.Dialog" android:name=".SalesRouteDevitionActivity"
android:label="Sales Route Diviation">
</activity>
После завершения работы окна pop, как мы можем перейти к предыдущей деятельности в этом конкретном месте?
Пожалуйста, помогите мне...
заранее спасибо
откуда вы запустите всплывающее окно, вызовите его с помощью намерения через вызов this startActivityForResult (your_intent, requestCode)
он начнет свою деятельность, и во всплывающей активности сделайте так.
Bundle bundle = new Bundle();
bundle.putString("position", param1);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
поэтому всплывающее окно завершит свою работу и вернется к предыдущей деятельности, где будет вызываться с результатом
и в вашей деятельности переопределите onActivityResult таким образом
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
if(resultCode==RESULT_OK)
Toast.makeText(this, "SUCCESS", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
Вы можете создать глобальную переменную для позиции выбранного элемента. Затем, когда вы возвращаетесь к предыдущему действию, вы вызываете listView1.smoothScrollToPosition(int position)
.
Вместо запуска нового действия для всплывающего окна вы можете создать AlertDialog. Вы можете вызвать функцию увольнения(), чтобы вернуть свою активность.
Вы хотите, чтобы в режиме просмотра списка отображалась позиция, которая не является дефолтом? Если это так, вам нужно только вернуть цель с позицией и в onActivityForResult() вы устанавливаете фокус в этой позиции. Если у вас есть какие-либо проблемы, добавьте мои yahoo или skype: fsoft_duonghv и мы обсуждаем.