Android одно действие, чтобы всплывающее окно

1

Мое требование: Перечислить весь маршрут продаж и выделить по умолчанию, Это должен быть первый вариант. Если продавец выбирает другую опцию (не выбранную по умолчанию), тогда должно появиться всплывающее окно. Всплывающее окно содержит одну форму, она разговаривает с 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, как мы можем перейти к предыдущей деятельности в этом конкретном месте?

Пожалуйста, помогите мне...

заранее спасибо

Теги:

4 ответа

2
Лучший ответ

откуда вы запустите всплывающее окно, вызовите его с помощью намерения через вызов 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();
    }
}
  • 0
    Спасибо за поддержку. Работает нормально
1

Вы можете создать глобальную переменную для позиции выбранного элемента. Затем, когда вы возвращаетесь к предыдущему действию, вы вызываете listView1.smoothScrollToPosition(int position).

1

Вместо запуска нового действия для всплывающего окна вы можете создать AlertDialog. Вы можете вызвать функцию увольнения(), чтобы вернуть свою активность.

1

Вы хотите, чтобы в режиме просмотра списка отображалась позиция, которая не является дефолтом? Если это так, вам нужно только вернуть цель с позицией и в onActivityForResult() вы устанавливаете фокус в этой позиции. Если у вас есть какие-либо проблемы, добавьте мои yahoo или skype: fsoft_duonghv и мы обсуждаем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню