ListView öffnet Aktivität wenn das Element geklickt wird?

Im Versuch, Bauten diese app, die einfach aus einer ListView und verschiedene andere Aktivitäten, die aufgerufen wird, wenn ein Element aus der Ansicht geklickt wird. Jedoch, ich bin nicht in der Lage einen funktionierenden onclicklistener in der Haupt-Aktivität. Mit dem code unten, ich bin nicht in der Lage, um die Aktivität öffnen.

Hier ist der code:

public void setOnItemClickListener(AdapterView<?> parent, View view,
      int position, long id) {
    switch( position )
    {
       case 0:  Intent newActivity0 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity0);
                break;
       case 1:  Intent newActivity1 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity1);
                break;
       case 2:  Intent newActivity2 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity2);
                break;
       case 3:  Intent newActivity3 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity3);
                break;
       case 4:  Intent newActivity4 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity4);
                break;
    }
}

Jede Hilfe wäre sehr geschätzt 🙂 Kommentar, wenn U brauchen, um zu sehen, der vollständige code, ich update den post. Danke!

Dank für alle Antworten!
Hier ist der vollständige code:

public class MainActivity extends ListActivity {
private LayoutInflater mInflater;
private Vector<RowData> data;
RowData rd;

static final String[] title = new String[] {
    "Christmas Crepes", "Dorayaki", "Corned Beef", "Tempura"
    };

static final String[] release = new String[] {
"New!", "New!", "4 months ago", "New!"
};

static final String[] description = new String[] {
    "Blehh..","Pam pam pam","new era","Steve Jobs is dead"
    };

static final String[] difficulty = new String[] {
"Hard","Easy","Medium","Hard"
};

static final String[] serves = new String[] {
"4 persons","2 persons","2 cups","1 person"
};

static final String[] time = new String[] {
"40 mins","20 mins","50 mins","120 mins"
};

private Integer[] imgid = {
  R.drawable.thumbone,R.drawable.thumbtwo,R.drawable.thumbthree,
  R.drawable.thumbfour
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mInflater = (LayoutInflater) getSystemService(
Activity.LAYOUT_INFLATER_SERVICE);
data = new Vector<RowData>();
for(int i=0;i<title.length;i++){

try {
rd = new       RowData(i,title[i],release[i],description[i],difficulty[i],serves[i],time[i]);
    } catch (ParseException e) {
    e.printStackTrace();
   }
   data.add(rd);
   }
   CustomAdapter adapter = new CustomAdapter(this, R.layout.list, android.R.id.list, data);
   setListAdapter(adapter);
   getListView().setTextFilterEnabled(true);
   }
   public void setOnItemClickListener(AdapterView<?> parent, View view,
      int position, long id) {
    switch( position )
    {
       case 0:  Intent newActivity0 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity0);
                break;
       case 1:  Intent newActivity1 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity1);
                break;
       case 2:  Intent newActivity2 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity2);
                break;
       case 3:  Intent newActivity3 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity3);
                break;
       case 4:  Intent newActivity4 = new Intent(this, TempuraActivity.class);     
                startActivity(newActivity4);
                break;
    }
}
   private class RowData {
   protected int mId;
   protected String mTitle;
   protected String mRelease;
   protected String mDescription;
   protected String mDifficulty;
   protected String mServes;
   protected String mTime;
   RowData(int id, String title, String release, String description, String difficulty, String serves, String time){
   mId=id;
   mTitle = title;
   mRelease = release;
   mDescription = description;
   mDifficulty = difficulty;
   mServes = serves;
   mTime = time;
   }
   @Override
   public String toString() {
           return mId+" "+mTitle+" "+mRelease+" "+mDescription+" "+mDifficulty+" "+mServes+" "+mTime;
   }
}
private class CustomAdapter extends ArrayAdapter<RowData> {

public CustomAdapter(Context context, int resource, int textViewResourceId, List<RowData> objects) {               

super(context, resource, textViewResourceId, objects);
}
  @Override
   public View getView(int position, View convertView, ViewGroup parent) {   

   ViewHolder holder = null;
   TextView title = null;
   TextView release = null;
   TextView description = null;
   TextView difficulty = null;
   TextView serves = null;
   TextView time = null;
   ImageView thumbnail=null;
   RowData rowData= getItem(position);
   if(null == convertView){
        convertView = mInflater.inflate(R.layout.list, null);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
}
         holder = (ViewHolder) convertView.getTag();
         title = holder.gettitle();
         title.setText(rowData.mTitle);
         release = holder.getdescription();
         release.setText(rowData.mRelease);
         description = holder.getrelease();
         description.setText(rowData.mDescription);
         difficulty = holder.getdifficulty();
         difficulty.setText(rowData.mDifficulty);
         serves = holder.getserves();
         serves.setText(rowData.mServes);
         time = holder.gettime();
         time.setText(rowData.mTime);

         thumbnail=holder.getImage();
         thumbnail.setImageResource(imgid[rowData.mId]);
         return convertView;
}
        private class ViewHolder {
        private View mRow;
        private TextView title = null;
        private TextView release = null;
        private TextView description = null;
        private TextView difficulty = null;
        private TextView serves = null;
        private TextView time = null;
        private ImageView thumbnail=null; 

        public ViewHolder(View row) {
        mRow = row;
}
    public TextView gettitle() {
         if(null == title){
             title = (TextView) mRow.findViewById(R.id.title);
            }
        return title;
     }     

    public TextView getrelease() {
        if(null == release){
            release = (TextView) mRow.findViewById(R.id.release);
           }
       return release;
    } 

     public TextView getdescription() {
         if(null == description){
              description = (TextView) mRow.findViewById(R.id.description);
                }
       return description;
     }
     public TextView getdifficulty() {
         if(null == difficulty){
             difficulty = (TextView) mRow.findViewById(R.id.difficulty);
            }
        return difficulty;
     }  
     public TextView getserves() {
         if(null == serves){
             serves = (TextView) mRow.findViewById(R.id.serves);
            }
        return serves;
     }  
     public TextView gettime() {
         if(null == time){
             time = (TextView) mRow.findViewById(R.id.title);
            }
        return time;
     }  

    public ImageView getImage() {
         if(null == thumbnail){
              thumbnail = (ImageView) mRow.findViewById(R.id.thumbnail);
                                  }
            return thumbnail;
        }
     }            
   }
}

Wenn es gibt keine bessere Methode, das zu erreichen, was meine app sollte, bitte posten! Im in der hoffnungslosen Notwendigkeit zu beenden, diese für einmal!!!!

  • Was passiert, wenn Sie klicken? Es tut geben Sie die Schalter? Stuerzt es ab?
  • Poste den gesamten code, es scheint einige problem mit der Umsetzung, wie z.B.: der code sollte in onItemClick eher als setOnItemClickListener
  • Wenn ich klicke passiert nichts
InformationsquelleAutor borislemke | 2012-01-05
Schreibe einen Kommentar