마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

탭호스트 커스텀리스트뷰 문제입니다 도와주세요 ㅜㅜ

0 추천

public class MainActivity extends TabActivity {

 /** Called when the activity is first created. */
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE); //타이틀바없애기
        setContentView(R.layout.activity_main);

        final TabHost tabHost = getTabHost();
            LayoutInflater.from(this).inflate(R.layout.activity_main, tabHost.getTabContentView(), true);
               
            tabHost.addTab(tabHost.newTabSpec("home")
                    .setIndicator("홈")
                    .setContent(new Intent(this, ProductListActivity.class)));
            tabHost.addTab(tabHost.newTabSpec("product tab")
                    .setIndicator("상품목록")
                    .setContent(new Intent(this, ProductListActivity.class)));
            tabHost.addTab(tabHost.newTabSpec("order tab")
                    .setIndicator("주문/문의")
                    .setContent(new Intent(this, ProductListActivity.class)));
            tabHost.addTab(tabHost.newTabSpec("account")
                    .setIndicator("거래처")
                    .setContent(new Intent(this, ProductListActivity.class)));
           
            tabHost.setCurrentTab(0);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

이렇게 텝호스트 인텐트로 구성하였습니다..


public class ProductListActivity extends ListActivity {

 /** Called when the activity is first created. */
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView listv = (ListView)findViewById(R.id.productlistview);
        // 상품 목록 불러오는 부분
        ProductLoad loaditems = new ProductLoad();
        ArrayList<ProductListDto> list = loaditems.loaditems();
        listv.setAdapter(new ProductListAdapter(this,R.layout.product_list,list));
    }

}

 이렇게 커스텀 리스트뷰를 구성했구요..


public class ProductListAdapter extends ArrayAdapter<ProductListDto> {

 private Context mContext;
 private int mResource;
 private ArrayList<ProductListDto> mList;
 private LayoutInflater mInflater;
 
 
 public ProductListAdapter(Context context, int layoutResourceId,
   ArrayList<ProductListDto> objects) {
  super(context, layoutResourceId, objects);
  
  this.mContext = context;
  this.mResource = layoutResourceId;
  this.mList = objects;   
  this.mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }
 
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  
  
  Log.d("---", "a");

  ProductListDto data = mList.get(position);
  if(convertView == null){
   convertView = mInflater.inflate(mResource, null);
  }
  
  if(data != null){
   TextView itemname = (TextView)convertView.findViewById(R.id.itemname);
   TextView itemintroduction = (TextView)convertView.findViewById(R.id.itemintroduction);
   
   itemname.setText(data.getItemname());
   itemintroduction.setText(data.getItempay() + "/" + data.getColor() + "/" + data.getSize());
  }
  return convertView;
 }
}

어뎁터 부분입니다..

 

정말 일주일동안 아무리 해도..모르겠어서.. 여기에 올립니다..

혼자 독학하기 너무 힘들군요..ㅜㅜ

텝호스트 엑티비티로 나눳을시 하나를 클릭하면 그안에 커스텀 리스트뷰를 뿌려주고 싶은데..

에러 로그도 안뜨고 그냥 멈춰버려요 ㅠㅠㅠ

도와주세요 고수님들.. 도데체 왜 안되는건지..

이거 환장할 노릇 ㅠㅠㅠㅠ 도와주세요!! 제발ㄹㄹㄹㄹㄹㄹㄹㄹㄹ루ㅜㅜㅜㅜㅜㅜ

익명사용자 님이 2013년 3월 11일 질문

1개의 답변

0 추천

LogCat을 안주시면 사실상 문제를 해결하기가 어렵습니다.

ProductLoad loaditems = new ProductLoad();

이런 부분들에서 네트워크가 잘못된건 아닌지 하는 생각이 들구요.

그리고 TabActivity를 상속받는 스타일은 이미 Deprecated된 방법입니다.

FragmentTabHost를 이용하세요

 

 

 

천도복숭아 (6,080 포인트) 님이 2013년 3월 11일 답변
...