2012-02-16 4 views
0

Я делаю приложение для Android, которое использует listview. Я хочу получить индексный номер элемента после того, как элемент был нажат (одним щелчком мыши). Я прошел несколько уроков, но никто не помог. Как я могу получить номер индекса и передать его в String. Затем я хочу удалить его, но я буду управлять этой частью. Мне нужен только номер индекса и передать его в строку. Код, в котором я получаю индекс, является straigt после метода onCreate. Пожалуйста, помогите и спасибо заранее! Это код, который я использую:Получение индекса элемента списка в android

public class NotesActivity extends ListActivity implements OnClickListener { 
/** Called when the activity is first created. */ 
List<String> myList = new ArrayList<String>(); 
EditText AddItemToListViewEditText; 
Button AddItemToListView, AddItemToListViewButton, CancelButton, DeleteButton; 
LinearLayout AddItemToListViewLinearLayout, DeleteItemFromListViewLinearLayout; 
public String DeleteIndexNumber; 
    static final String[] COUNTRIES = new String[] { 
     "Matte på A1 med Ole", "Engelsk på klasserommet", "Film på A1 etter friminuttet" 
     }; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.notes); 
    setListAdapter((ListAdapter) new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 
    setListAdapter((ListAdapter) new ArrayAdapter<String>(this, R.layout.list_item, myList)); 

    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // When clicked, show a toast with the TextView text 
     Toast.makeText(getApplicationContext(), "Note: " + ((TextView) view).getText(), 
      Toast.LENGTH_SHORT).show(); 
     //This is where i need the index number to be passed to the string "DeleteIndexNumber" 
     DeleteItemFromListViewLinearLayout = (LinearLayout)findViewById(R.id.DeleteItemFromListViewLinearLayout); 
     DeleteItemFromListViewLinearLayout.setVisibility(View.VISIBLE); 
    } 
    }); 
    } 
@Override 
public boolean onCreateOptionsMenu(Menu meny) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.listviewmenubuttons, meny); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.AddItemToListView: 
     AddItemToListViewButton = (Button)findViewById(R.id.AddItemToListViewButton); 
     CancelButton = (Button)findViewById(R.id.CancelButton); 
     DeleteButton = (Button)findViewById(R.id.DeleteButton); 
     CancelButton.setOnClickListener(this); 
     DeleteButton.setOnClickListener(this); 
     AddItemToListViewLinearLayout = (LinearLayout)findViewById(R.id.AddItemToListViewLinearLayout); 
     AddItemToListViewButton.setOnClickListener(this); 
     AddItemToListViewLinearLayout.setVisibility(View.VISIBLE); 
     break; 
     } 
    return true; 
} 
public void onClick(View src) { 
    switch(src.getId()) { 
    case R.id.AddItemToListViewButton: 
     AddItemToListViewEditText = (EditText)findViewById(R.id.AddItemToListViewEditText); 
     myList.add(AddItemToListViewEditText.getText().toString()); 
     ((ArrayAdapter)getListView().getAdapter()).notifyDataSetChanged(); 
     AddItemToListViewEditText.setText(""); 
     AddItemToListViewEditText.clearFocus(); 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN); 
     imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
     AddItemToListViewLinearLayout.setVisibility(View.GONE); 
     break; 
    case R.id.CancelButton: 
     DeleteItemFromListViewLinearLayout = (LinearLayout)findViewById(R.id.DeleteItemFromListViewLinearLayout); 
     DeleteItemFromListViewLinearLayout.setVisibility(View.INVISIBLE); 
     break; 
    case R.id.DeleteButton: 
     break; 
    } 
} 
} 
+1

в нашем списке viewItemClick целочисленная позиция переменной для щелчка позиции позиции списка. используйте это для получения позиции позиции listview. – Deepak

ответ

1

уведомления параметры для метода onItemClick

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
} 

позиция даст вам индекс вы хотите ..

0

Не так ли параметр позиции в onItemClick?

0

Параметр position в onItemClick даст вам индекс щелкнутого элемента в списке.