Notwendiger Kontext im Modell in MVP
Ich muss den Aktivitätskontext im Modell verwenden, während MVP in Android verwendet wird, um die Liste aller installierten Anwendungen abzurufen. Dies ist der richtige Weg, um auf den Kontext zuzugreifen, oder eine Alternative, um dasselbe zu erreichen, während Sie dem MVP-Muster folgen.
hier sind die Klassen:
public class MainActivity extends BaseActivity
implements MainView,View.OnClickListener {
private MainPresenter mPresenter;
private Button sendButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
createPresenter();
}
private void init(){
sendButton= (Button) findViewById(R.id.button_send);
sendButton.setOnClickListener(this);
}
private void createPresenter() {
mPresenter=new MainPresenter();
mPresenter.addView(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button_send:
mPresenter.onSendButtonClick();
break;
}
}
@Override
public void openOptionsActivity() {
Intent intent=new Intent(this,OptionsActivity.class);
startActivity(intent);
}
}
public class MainPresenter erweitert BasePresenter
MainModel model;
public void onSendButtonClick(){
model.getListOfAllApps();
}
@Override
public void addView(MainView view) {
super.addView(view);
model=new MainModel();
}
}
public class MainModel {
public void getListOfAllApps(){
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
}
}
having Problem ingetPackageManager (). queryIntentActivities (mainIntent, 0) .how es zu tun, als keinen Kontext hier zu haben.