Reputation: 615
I am working on android Launcher, Where it contains three activities, The first activity is HomeActivity
which contain four buttons which will be perform intent operations and the rest of the activities are blank but, At HomeActivity
when I click on contact button it will display contact list, but when I choose one of the contact it shows nothing and the rest of the buttons also behave like contact button it will not jump to the OnActivityResult()
method so how can I fix this problem?
Below is my code:-
MainHomeActivity.java
public class MainHomeActivity extends AppCompatActivity {
DevicePolicyManager devicePolicyManager;
ComponentName adminComponent;
Button apps;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Button lock = (Button) findViewById(R.id.button_lock);
lock.setOnClickListener(btnListener);
Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT,15000);
apps = (Button) findViewById(R.id.main_menu);
}
Button.OnClickListener btnListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
adminComponent = new ComponentName(MainHomeActivity.this, AdminReceiver.class);
devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (!devicePolicyManager.isAdminActive(adminComponent)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminComponent);
startActivityForResult(intent, 50);
} else {
devicePolicyManager.lockNow();
}
apps.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainHomeActivity.this, AppsListActivity.class);
startActivity(i);
}
});
}
};
}
HomeActivity.java
public class HomeActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_home_activity);
ViewPager viewPage = (ViewPager) findViewById(R.id.viewpager);
viewPage.setAdapter(new CustomPageAdapter(this));
}
public void contact(View view){
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if(intent.resolveActivity(getPackageManager()) != null){
startActivityForResult(intent,10);
}
}
public void audioIntent(View view){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getParent()+"/ext_card");
intent.setDataAndType(uri,"audio/*");
startActivityForResult(intent,20);
}
public void videoIntent(View v){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getParent()+"/ext_card");
intent.setDataAndType(uri,"video/*");
startActivityForResult(intent,30);
}
public void pdfIntent(View view){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getParent()+"/ext.card");
intent.setDataAndType(uri,"pdf/*");
startActivityForResult(intent,40);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == RESULT_OK && resultCode == 10){
Uri contactUri = data.getData();
Intent contactIntent = new Intent(Intent.ACTION_CALL);
contactIntent.setData(contactUri);
startActivity(contactIntent);
}
if(resultCode == 20 && requestCode == RESULT_OK){
Uri audioUri = data.getData();
Intent audioIntent = new Intent(Intent.ACTION_VIEW);
audioIntent.setDataAndType(audioUri,"audio/*");
startActivity(audioIntent);
}
if(requestCode == RESULT_OK && resultCode == 30){
Uri videoUri = data.getData();
Intent videoIntent = new Intent(Intent.ACTION_VIEW);
videoIntent.setDataAndType(videoUri,"video/*");
startActivity(videoIntent);
}
if(requestCode == RESULT_OK && resultCode == 40){
Uri pdfUri = data.getData();
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(pdfUri,"pdf/*");
startActivity(pdfIntent);
}
}
}
CustomPagerAdapter.java
public class CustomPageAdapter extends PagerAdapter {
private Context mContext;
public CustomPageAdapter(Context context){
mContext = context;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ModelObject modelObject = ModelObject.values()[position];
LayoutInflater inflater = LayoutInflater.from(mContext);
ViewGroup layout = (ViewGroup) inflater.inflate(modelObject.getLayoutResId(),container,false);
container.addView(layout);
return layout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return ModelObject.values().length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public CharSequence getPageTitle(int position) {
ModelObject customPagerEnum = ModelObject.values()[position];
return mContext.getString(customPagerEnum.getTitleResId());
}
}
This is the screenshot of the application:-
Upvotes: 0
Views: 90
Reputation: 21766
You are doing wrong in your if
conditions. You are trying to compare requestCode
with RESULT_OK
and resultCode
with request codes (10,20,30 and 40
) which is totally wrong.
Use:
if(requestCode == 10 && resultCode == RESULT_OK)
Instead of:
if(requestCode == RESULT_OK && resultCode == 10)
Update onActivityResult()
as below:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 10 && resultCode == RESULT_OK){
Uri contactUri = data.getData();
Intent contactIntent = new Intent(Intent.ACTION_CALL);
contactIntent.setData(contactUri);
startActivity(contactIntent);
}
if(requestCode == 20 && resultCode == RESULT_OK){
Uri audioUri = data.getData();
Intent audioIntent = new Intent(Intent.ACTION_VIEW);
audioIntent.setDataAndType(audioUri,"audio/*");
startActivity(audioIntent);
}
if(requestCode == 30 && resultCode == RESULT_OK){
Uri videoUri = data.getData();
Intent videoIntent = new Intent(Intent.ACTION_VIEW);
videoIntent.setDataAndType(videoUri,"video/*");
startActivity(videoIntent);
}
if(requestCode == 40 && resultCode == RESULT_OK){
Uri pdfUri = data.getData();
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(pdfUri,"pdf/*");
startActivity(pdfIntent);
}
}
Hope this will help~
Upvotes: 1