2012-02-16 63 views
0

我正在制作一个使用listview的android应用程序。一旦项目被按下(单击),我想获得项目的索引号。我已经通过了几个教程,但似乎没有帮助。我如何获得索引号并将其传递给字符串。我确实想删除它,但我会自己管理那部分。我只需要索引号并将其传递给一个字符串。在onCreate方法之后,我会得到索引号的代码是straigt。请提前帮助和感谢!这是我使用的代码:在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

在我们的listview onItemClick整型变量位置是针对listview的点击项目位置。用这个来获得点击的listview的项目位置。 – Deepak 2012-02-16 17:42:25

回答

1

通知参数为onItemClick方法

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

位置会给你你想要的指标..

0

是不是位置参数在onItemClick?

0

onItemClick中的位置参数将为您提供列表中单击项目的索引。