Question

I am working on one android app, and in which i have one menu that shows list of Activity name.Upon clicking of any item from menu should start that specific Activity.

One way i know to do this is,

String classes[]= {"firstActivity","DetailActivity"}; intent i =new Intent(pkg_name+classes[position]);startActivity(i); 

where position=0 or 1. And for that i need to write in AndroidManifest.xml file below code for each Activity

<activity
        android:name="com.example.day1.DetailActivity"
         >
        <intent-filter>
            <action android:name="com.example.day1.DetailActivity" />
            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>
    </activity>

But i want just

<activity android:name=".DetailActivity"></activity>

simple code. Dont want to use intent-filter So please give me alternative i can use in this case.

Was it helpful?

Solution

Or the other way round

Class classes[] = [ firstActivity.class, DetailActivity.class];
Intent i = new Intent(this, classes[position]);
startActivity(i);

Then, when you want to display the name of the activities, use classes[position].getSimpleName();

OTHER TIPS

Use this code :

Class chooseClass = null;
switch(position)
{
case 0 : chooseClass = firstActivity;
         break;
case 1 : chooseClass = DetailActivity;
         break;
}
if(chooseClass != null)
    startActivity(new Intent(context, chooseClass);

Via code you can launch it with:

Intent i = new Intent(this, DetailActivity.class);
startActivity(i);

Now you don't need the filter.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top