2015-09-25 5 views
0

Здесь у меня есть метод, чтобы начать differend деятельностьКак отправить активность как параметр в метод?

public void StartViewActivities(View view, AppCompatActivity activity) 
    { 
     ViewGroup selectedGroup = (ViewGroup)view; 
     NoteObject objectForIntent = new NoteObject(); 
     objectForIntent.keywords = (String)((TextView)selectedGroup.getChildAt(0)).getText(); 
     objectForIntent.Details = (String)((TextView)selectedGroup.getChildAt(1)).getText(); 
     objectForIntent.ID = Integer.parseInt((String)((TextView)selectedGroup.getChildAt(2)).getText()); 
     startActivity(new Intent(GetActivity.this, activity.class).putExtra("keywords", objectForIntent.keywords) 
       .putExtra("Details", objectForIntent.Details).putExtra("ID",objectForIntent.ID)); 
    } 

Я посылаю свою деятельность, чтобы быть запущен в качестве параметра. Но внутри метода startActivity сказано: Неизвестный класс: активность. Итак, как мы можем передать активность как параметр?

+2

Может быть, вы можете отправить 'intent' начать эту деятельность в качестве параметра? – Sudara

+0

Синтаксис запуска активности: ** startActivity (новый Intent (current_activity, target_activity.class)) ** – arun

+0

@arun Я уверен, что я подал в суд на это? – ozgur

ответ

0

Вы должны использовать activity.getClass() вместо activity.class.

0

Вы можете использовать переменную Class type. Это может быть передано как параметр к методу, если вы пожелаете.

Class clz = MyActivity.class 
startActivity(new Intent(context, clz)); 
0

Поскольку вы передаете длинный экземпляр деятельности (AppCompatActivity расширяет активность), вы не можете сделать activity.class, но вы можете сделать activity.getClass(). Кроме того, я предполагаю, что GetActivity - это активность, с которой вы хотите начать новую деятельность? Вы можете просто сделать newIntent(this, activity.getClass()).

Заменить Йор startActivity линию с этим: startActivity(new Intent(this, activity.getClass()).putExtra("keywords", objectForIntent.keywords) .putExtra("Details", objectForIntent.Details).putExtra("ID",objectForIntent.ID));

0

Просто начните новое намерение назвать вашу деятельность.

например:

<activity 
    android:name="com.innovativesolutions.gpsareafinder.Locationdbview" 
    android:label="@string/app_name" > 
</activity> 

startActivity(new Intent(this, Locationdbview.class));