2011-10-16 20 views
1

好的。我正在做一個項目,我已經創建了列表視圖,但我想點擊它並轉到另一個頁面,例如當你點擊一個按鈕時,它會轉到另一個頁面,就像那樣,這是我迄今爲止的代碼:如何製作可點擊的列表視圖

import android.app.ListActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class listV extends ListActivity { 

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

    setListAdapter(new ArrayAdapter<String>(this, R.layout.listview,Food)); 

    ListView list = getListView(); 
    list.setTextFilterEnabled(true); 
    list.setOnItemClickListener(new OnItemClickListener(){ 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), ((TextView)  arg1).getText(), Toast.LENGTH_SHORT).show(); 
     } 

    }); 

} 




static final String[] Food = new String[]{ 
"Physical Activity" , "Healthy Diet", "Childhood Obesity" 

}; 

} 

任何幫助,將不勝感激。 我只是一個初學者,所以請嘗試詳細解釋。

回答

1

看起來你就是那裏的95%。在監聽器的onItemClick方法中,您只需像通常那樣開始新的活動。您可以使用onItemClick的第三個參數給你,這是點擊列表視圖項目的位置,並用它來區分活動,您呼叫或將其傳遞到一個活動:

@Override 
public void onItemClick(AdapterView<?> arg0, View position, int arg2, long arg3) { 

     Intent i; 
     if(position == 1){   
      i = new Intent(listV.this, MyFirstActivity.class); 
     } else if (position == 2){   
      i = new Intent(listV.this, MySecondActivity.class); 
     } else if (position == 3) { 
      i = new Intent(listV.this, MyThirdActivity.class); 
     } else { 
      return; 
     }   
     startActivity(i); 

} 
+0

好吧,我輸入了代碼,但現在它只是給我從「putExtra」「在型意圖的方法putExtra(字符串,布爾)的錯誤是不適用的參數(String,View)「 – user997766

+0

只需編輯我的答案。不要使用startActivityForResult ..只是一個常規的startActivity。另外,我將錯誤的參數標記爲position(第二個而不是第三個)。對不起,錯別字。現在應該是好的。 – SBerg413

+0

好的,非常感謝您的幫助,但仍然沒有得到我需要做的,所以我已經實現了代碼,現在代碼只能讓我打開一個頁面,所以我有3頁我想打開,所以當我點擊它的每一個,它會進入一個特定的活動,而不是打開1個活動,當我點擊3個不同的行,抱歉混淆,我吸這 – user997766

1

我是一個相當新的程序員自己和我正試圖創造同樣的事情。一個ListView,用戶可以點擊列表中的每個單獨的項目,每個項目將開始自己的活動。請根據您之前提供的幫助查看我的代碼。

package com.tylerbmc.test; 

import android.app.ListActivity; 

import android.content.Intent; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Main extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
      getResources().getStringArray(R.array.abdominals))); 

    ListView list = getListView(); 
    list.setOnItemClickListener(new OnItemClickListener() { 


     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 

      Intent i; 

      if (position == 1) { 
       i = new Intent(Main.this, Second.class); 
       startActivity(i); 
      } 
      else if (position == 2) { 
       i = new Intent(Main.this, Third.class); 
       startActivity(i); 
      } 




     } 
    }); 

} 

}

相關問題