현재 어떤 탭이 표시되는지에 따라 ActionBarSherlock을 사용하여 다른 목록 조각을 표시하려고합니다. 지금까지는 심지어 내 조각을 표시하려고 과거를 얻을 수 없습니다. 인스턴스화되고 생성되었지만보기에는 표시되지 않습니다. 여기 ActionBarSherlock을 사용하여 내 조각을 볼 수 없습니다.
내가 그 SherlockFragmentActivity 구현이 그 활동의 :public class MyListView extends SherlockFragmentActivity implements ActionBar.TabListener{
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(com.actionbarsherlock.R.style.Theme_Sherlock); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_navigation);
MyListFrag listFrag = (MyListFrag) getSupportFragmentManager()
.findFragmentById(R.id.fragment1);
listFrag.update(ViewActivity.livePoints);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment1, listFrag);
fragmentTransaction.commit();
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 1; i <= 3; i++) {
ActionBar.Tab tab = getSupportActionBar().newTab();
tab.setText("Tab " + i);
tab.setTabListener(this);
getSupportActionBar().addTab(tab);
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction transaction) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
}
}
당신은 내가 fragmentmanager를 사용하여 활동에 조각을 추가하려고했지만 나는 또한 XML을 추가하기 위해 노력하고있어 볼 수 있습니다 그것은 현재 나에게도 효과가 없다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="20dip">
<fragment
android:name="core.MyListFrag"
android:id="@+id/fragment1"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent"
/>
</LinearLayout>
마지막으로 여기에 사용중인 listfragment 클래스가 있습니다. 내가 뭘 하려는지 내가 baseadapter를 확장하여 만드는 사용자 지정 어댑터로 목록을 채우는 것입니다하지만 난 그게 문제의 일부가 될 수있는 올바르게하고 있는지 잘 모르겠습니다.
public class MyListFrag extends SherlockListFragment{
MarkItemAdapter mia;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mia = new MarkItemAdapter(this.getActivity(), MyViewActivity.livePoints);
setListAdapter(mia);
Toast.makeText(getSherlockActivity(), "frag started"+MyViewActivity.livePoints.size(), Toast.LENGTH_LONG).show();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.list_frag_layout, container, false);
}
public void updateUrl(List<Points> newList) {
if(mia!=null){
mia.points.clear();
mia.points = newList;
mia.notifyDataSetChanged();
}else{
mia.points = newList;
mia.notifyDataSetChanged();
}
}
class MarkItemAdapter extends BaseAdapter{
List<Points> points = null;
Context cntx = null;
LayoutInflater myInflater;
int itemPosition =0;
ViewHolder holder;
public MarkItemAdapter(Context cntx,List<Points> points){
this.points = points;
this.cntx = cntx;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return marks.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
itemPosition = position;
if (convertView==null) {
convertView = myInflater.inflate(R.layout.point_row_item, null);
holder = new ViewHolder();
holder.description = (TextView) convertView.findViewById(R.id.point_description);
holder.distance = (TextView) convertView.findViewById(R.id.point_distance);
holder.point_image = (ImageView) convertView.findViewById(R.id.point_image);
holder.view_point = (ImageButton) convertView.findViewById(R.id.view_mark);
holder.rate_point = (RatingBar) convertView.findViewById(R.id.rate_point);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.description.setText(points.get(itemPosition).title);
holder.distance.setText(points.get(itemPosition).getDistanceString());
holder.view_point.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
//do stuff
}
});
//add logic for rating bar
return convertView;
}
}
private class MyViewHolder{
ImageView mark_image;
TextView description;
TextView distance;
ImageButton view_mark;
RatingBar rate_mark;
}
}
그 날을 도울 사람을 도움이된다면 나는 다른 XML 레이아웃을 추가 할 수 있습니다하지만 난 그게 문제가 아니라 레이아웃의 내 자바의 확신으로 나는 그들을 떠났다. 단편은 처음 사용할 때 명확하지 않습니다. 나는 onAttach()
을 사용했는지 안했는지 안다면, 안드로이드 문서를보고 다른 모든 튜토리얼을 보는 것은 나 혼란 스럽다. 프랜 켄슈 타인 (Frankenstein)의 단편을 만들기 위해 코드가 엉망으로 열 개의 튜토리얼을 함께 쓰고 싶지 않기 때문에 조각이있는 곳에서 놀아 보았습니다.