저는 슬라이딩 메뉴로 Android 앱을 개발 중입니다.ListActivity가 활동을 확장합니까?
내가 메뉴 항목을 표시 할ListFragment
에서 사용할 사용자 정의 클래스를 만들었습니다
:
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.com.msx.R;
import com.com.msx.adapters.MenuAdapter;
import com.com.msx.menu.MenuItem;
public class MenuFragment extends ListFragment
{
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
return inflater.inflate(R.layout.menu_list, null);
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ArrayList<MenuItem> menuItems = getMenuItems();
MenuAdapter adapter = new MenuAdapter(getActivity(),
R.layout.menu_row, menuItems);
setListAdapter(adapter);
}
/**
* Get menu items to show on Sliding menu.
* @return
*/
private ArrayList<MenuItem> getMenuItems()
{
String[] titles = {
getActivity().getString(R.string.menu_item_my_lovers),
getActivity().getString(R.string.menu_item_my_friends),
getActivity().getString(R.string.menu_item_geo_sex_locator),
getActivity().getString(R.string.menu_item_sex_affinity),
getActivity().getString(R.string.menu_item_messages),
getActivity().getString(R.string.menu_item_statistics)
};
// TODO: Add icons for each menu item.
ArrayList<Class<? extends Activity>> activities = new ArrayList<Class<? extends Activity>>(titles.length);
activities.add(SelectFriendsActivity);
ArrayList<MenuItem> items = new ArrayList<MenuItem>(titles.length);
for(int i = 0; i < titles.length; i++)
{
MenuItem item = new MenuItem();
item.setTitle(titles[i]);
// TODO: Set icon.
items.add(item);
}
return items;
}
}
그리고 지금, 나는 채우기 위해 노력하고 ListFragment
목록의 :
public class MenuItem
{
/**
* Title to show on sliding menu.
*/
private String title;
/**
* Activity to start when user select a menu item.
*/
private Class<Activity> activityClass;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Class<Activity> getActivityClass() {
return activityClass;
}
public void setActivityClass(Class<Activity> activityClass) {
this.activityClass = activityClass;
}
}
이 내 ListFragment
입니다 맞춤 ArrayAdapter
어댑터. 나는이 작업을 수행하려고 할 때 : 나는 이렇게 할 경우
Cannot cast from Class<SelectFriendsActivity> to Class<Activity>
SelectFriendsActivity cannot be resolved to a type
:
ArrayList<Class<Activity>> activities = new ArrayList<Class<Activity>>(titles.length);
activities.add((Class<Activity>)SelectFriendsActivity.class);
을 나는이 두 컴파일러 오류를 얻을 수
ArrayList<Class<? extends Activity>> activities = new ArrayList<Class<? extends Activity>>(titles.length);
activities.add(SelectFriendsActivity.class);
내가 얻을이 컴파일러 오류 :
The method add(Class<? extends Activity>) in the type ArrayList<Class<? extends Activity>>
is not applicable for the arguments (Class<SelectFriendsActivity>)
SelectFriendsActivity
유형 :
public class SelectFriendsActivity extends android.app.ListActivity
하지만 (활동을 확장) MainActivity.class 에 대한 SelectFriendsActivity.class을 변경하는 경우가 작동!
무슨 일입니까? Activity.class
때문에
'ArrayList l = new ArrayList ()', 아니 ArrayList l = ...' –
fge