2013-07-20 2 views
0

У меня есть эта проблема, я не могу получить доступ к другому макету или форме деятельности. Просмотр списка, im пытается вызвать Intent, но я всегда получаю «подтвердить перспективный переключатель», источник не найден.Android ListView Items open Activity

здесь код

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); 
      } 

     } 


    }); 

} 

ответ

0

, насколько я помню, в onItemClick() методе position начинается с 1

0

Ваша проблема заключается в том, что вы создаете экземпляр 2 объектов listView, один в populateListView а другой - в registerClickCallback; Вы создаете экземпляр одного listView, но добавляете обратный вызов на другом, убедитесь, что вы используете один объект listView целиком.