0

我有这个问题,我无法访问另一个布局或活动表单列表视图,我试图调用 Intent 但我总是得到“确认透视切换”,找不到源。

这是代码

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent; 
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;



public class HomeTab extends Activity {

private List<home_items> myItems= new ArrayList<home_items>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_activity);





    populateHomeIteams();
    populateListView();
    registerClickCallback();


}



private void registerClickCallback() {
    ListView list=(ListView)findViewById(R.id.listView1);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked, int position,
                long id) {

            //Toast.makeText(HomeTab.this, "positiom is"+position, Toast.LENGTH_LONG).show();

            if(position==0)
            {
                Intent intt=new Intent(HomeTab.this, Beauty_Tab.class);
                startActivity(intt);
            }

        }


    });

}



private void populateHomeIteams() {
    myItems.add(new home_items("Beauty", R.drawable.bg_list_view));
    myItems.add(new home_items("Healthy food", R.drawable.bg_list_view));
    myItems.add(new home_items("Family Health", R.drawable.bg_list_view));
    myItems.add(new home_items("Moda", R.drawable.bg_list_view));

}
private void populateListView() {
    ArrayAdapter<home_items> adapter= new MyListAdapter();
    ListView list= (ListView) findViewById(R.id.listView1);
    list.setAdapter(adapter);

}

private class MyListAdapter extends ArrayAdapter<home_items> {

    public MyListAdapter(){
        super(HomeTab.this,R.layout.iteam_view,myItems);

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View itemView = convertView;
        if(itemView == null){
            itemView=getLayoutInflater().inflate(R.layout.iteam_view,parent ,false);

        }


        home_items currentitem=myItems.get(position);


        ImageView imageview=(ImageView)itemView.findViewById(R.id.iteam_icon);
        imageview.setImageResource(currentitem.get_iconID());

        TextView maketxt=(TextView)itemView.findViewById(R.id.iteam_txt);
        maketxt.setText(currentitem.get_iteam_name());




        return itemView;

    }

}
}

问题出在函数 registerclickCallnack() 中,吐司正在工作,但意图不起作用

private void registerClickCallback() {
    ListView list=(ListView)findViewById(R.id.listView1);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked, int position,
                long id) {

            //Toast.makeText(HomeTab.this, "positiom is"+position, Toast.LENGTH_LONG).show();

            if(position==0)
            {
                Intent intt=new Intent(HomeTab.this, Beauty_Tab.class);
                startActivity(intt);
            }

        }


    });

}
4

2 回答 2

0

据我记得onItemClick()方法position从1开始

于 2013-07-20T12:17:38.190 回答
0

您的问题是您实例化了 2 个 listView 对象,一个在 populateListView 中,另一个在 registerClickCallback 中;您实例化一个 listView 但在另一个上添加点击回调,确保您使用一个单一的 listView 对象。

于 2014-11-02T20:44:48.907 回答