Невозможно расширить оба ListActivity и AsyncTask - PullRequest
0 голосов
/ 29 февраля 2012

Так как Java не поддерживает множественное наследование, у меня проблема с этим.

Вот что я хочу сделать:

public class CallForwardActivity extends ListActivity /* This is there I want to extend AsyncTask */ implements OnSharedPreferenceChangeListener
{

... // creating and initializing stuff

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    userInfo = this.getSharedPreferences(USERINFO_FILE, 0);
    userInfo.registerOnSharedPreferenceChangeListener(this);
    userControl = new UserController(context);
    ListView lv = getListView();
    lv.setTextFilterEnabled(true);
    //setListAdapter(new ArrayAdapter<String>(this, R.layout.callforward_items, R.id.callforward_item_text, callforwardLabels));

    list = new ArrayList<HashMap<String,String>>();

    callForwardList = new SimpleAdapter( 
            this, 
            list,
            R.layout.callforward_items,
            new String[] { "line1","line2" },
            new int[] { R.id.callforward_item_text, R.id.callforward_number } );



    populateList();
    setListAdapter( callForwardList );

    lv.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    {
        CustomDialog(); // this will make the asynchronous task call if the user presses "OK" within the dialog box.
    }

  });

}

Как мне сделать асинхронный вызов без расширения AsyncTask?

Ответы [ 3 ]

4 голосов
/ 29 февраля 2012

Просто создайте другой класс, расширяющий AsyncTask, и используйте его в своем ListActivity. Вы можете сделать это внутренним, если хотите. Надеюсь, это поможет.

1 голос
/ 29 февраля 2012

errrmmm .... Вы не можете расширить два класса в Java, вы можете реализовать много интерфейсов, но расширить один класс.вам следует создать еще один внутренний класс say, который расширяет AsyncTask <.., .., ..> и выполнять там фоновые задания.

Подробнее о множественном наследовании в java http://java.sys -con.com /узел / 37748

0 голосов
/ 29 февраля 2012

В каком случае вы пытаетесь использовать действие, расширяющее асинхронную задачу, асинхронная операция используется для фонового процесса, компонент Acitivity используется для предоставления пользовательского интерфейса

Вы пытаетесь UIThread расширяет BackgroundThread, что означает, что вы устанавливаете отношения типа 'UIThread is-a BackgroundThread' .

Мне кажется, есть еще один способ решить ваш вариант использования.

...