ACTION_DELETE Android

1

Возник вопрос о снятии приложений в программе. Я использую такой код:

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;


public class dop extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dop);
    PackageManager pm = this.getPackageManager();

    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    List<String> myList = new ArrayList<String>();
    ArrayList<ResolveInfo> list = (ArrayList<ResolveInfo>) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
    for (ResolveInfo rInfo : list) {
    System.out.println("Installed Applications " + rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
    myList.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
    }
    ListView listView = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, myList);
    listView.setAdapter(aa);

    }
    public void onListItemClick(
            ListView parent, View v, int position, long id) {
        Intent intent = new Intent(Intent.ACTION_DELETE);
        intent.setData(Uri.parse("package:"+"some.package.to.remove"));
        startActivity(intent);
    }
}

Но код удаления не работает. Что я не так делаю?

  • 0
    Любое интересное сообщение в logcat?
Теги:

1 ответ

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

onListItemClick() доступен только в ListActivity (и это фактически защищенный член), поэтому в основном вы не переопределяете ничего, и этот метод никогда не будет вызван.

(чтобы быть уверенным, что вы что-то переопределяете, поставьте @Override до этого метода, компилятор будет жаловаться, если это не переопределение, и вы что-то знаете там не так)

По мере того, как вы создаете Activity, вам нужно выполнить его реализацию OnItemClickListener, а в onCreate() установить этот прослушиватель на ListView:

public class dop extends Activity implements OnItemClickListener {
//.....
    public void onCreate(Bundle bndl) {
        //....
        listView.setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(/*...*/) {
        // put here your click code
    }
}
  • 0
    Сделал как сказали, но удаления не происходит:
  • 0
    @ ghostged: хм, код намерения удаления кажется нормальным. Проверьте, вызывается ли onItemClick () (поместите Log.d("...","onitemclick called"); или установите Log.d("...","onitemclick called"); останова на этой строке и посмотрите, достигнута ли при отладке. Обратите внимание, что в Android лучше практиковать используйте журнал вместо System.out.println)

Ещё вопросы

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