Java 在Android项目中使用ListActivity实现McClickedListener?

Java 在Android项目中使用ListActivity实现McClickedListener?,java,android,android-listview,Java,Android,Android Listview,当我无法按id获取列表时,可以实现onItemClickedListener(),因为我的ListView获得了android:id=“@android:id/list” 我想检查是否单击了ListItem并突出显示它。现在我无法突出显示项目 import android.app.ListActivity; import android.os.Bundle; import java.util.List; import java.util.Random; import android.view.V

当我无法按id获取列表时,可以实现onItemClickedListener(),因为我的ListView获得了android:id=“@android:id/list”

我想检查是否单击了ListItem并突出显示它。现在我无法突出显示项目

import android.app.ListActivity;
import android.os.Bundle;
import java.util.List;
import java.util.Random;
import android.view.View;
import android.widget.ArrayAdapter;

public class FirstGridPage extends ListActivity {
      private StolikiDataSource datasource;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_list_stoliki);

    datasource = new StolikiDataSource(this);
    datasource.open();

    List<Stoliki> values = datasource.getAllStoliki();

    // Use the SimpleCursorAdapter to show the
    // elements in a ListView
    ArrayAdapter<Stoliki> adapter = new ArrayAdapter<Stoliki>(this,
        android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
  }

  // Will be called via the onClick attribute
  // of the buttons in main.xml
  public void onClick(View view) {
    @SuppressWarnings("unchecked")
    ArrayAdapter<Stoliki> adapter = (ArrayAdapter<Stoliki>) getListAdapter();
    Stoliki stolik = null;
    switch (view.getId()) {
    case R.id.add:
      String[] stoliki_numer = new String[] { "1", "2", "3" };
      String[] stoliki_opis = new String[] { "Czerwony", "Niebieski", "Zielony" };
      int nextInt = new Random().nextInt(3);
      // Save the new comment to the database
      stolik = datasource.createStolik(stoliki_numer[nextInt], stoliki_opis[nextInt]);
      adapter.add(stolik);
      break;
    case R.id.delete:
      if (getListAdapter().getCount() > 0) {
          stolik = (Stoliki) getListAdapter().getItem(0);
        datasource.deleteStolik(stolik);
        adapter.remove(stolik);
      }
      break;
    }
    adapter.notifyDataSetChanged();
  }

  @Override
  protected void onResume() {
    datasource.open();
    super.onResume();
  }

  @Override
  protected void onPause() {
    datasource.close();
    super.onPause();
  }

} 
导入android.app.ListActivity;
导入android.os.Bundle;
导入java.util.List;
导入java.util.Random;
导入android.view.view;
导入android.widget.ArrayAdapter;
公共类FirstGridPage扩展ListActivity{
私有StolikiDataSource数据源;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u view\u list\u stoliki);
datasource=新的StolikiDataSource(此);
datasource.open();
列表值=datasource.getAllStoliki();
//使用SimpleCursorAdapter显示
//ListView中的元素
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,值);
setListAdapter(适配器);
}
//将通过onClick属性调用
//main.xml中按钮的
公共void onClick(视图){
@抑制警告(“未选中”)
ArrayAdapter=(ArrayAdapter)getListAdapter();
Stoliki-stolik=null;
开关(view.getId()){
案例R.id.add:
字符串[]stoliki_numer=新字符串[]{“1”、“2”、“3”};
String[]stoliki_opis=新字符串[]{“Czerwony”、“Niebieski”、“Zielony”};
int nextInt=new Random().nextInt(3);
//将新注释保存到数据库中
stolik=datasource.createStolik(stoliki_numer[nextInt],stoliki_opis[nextInt]);
adapter.add(stolik);
打破
案例R.id.delete:
如果(getListAdapter().getCount()>0){
stolik=(Stoliki)getListAdapter().getItem(0);
datasource.deleteStolik(stolik);
适配器。移除(stolik);
}
打破
}
adapter.notifyDataSetChanged();
}
@凌驾
受保护的void onResume(){
datasource.open();
super.onResume();
}
@凌驾
受保护的void onPause(){
datasource.close();
super.onPause();
}
} 

ListActivity
有一个方法,您只需重写它。

ListActivity
有一个方法,您只需重写它。

私有类测试活动扩展ListActivity实现了ListListener
private class TestActivity extends ListActivity implements OnItemClickListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        yourListView.setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub

    }
}
{ @凌驾 创建时受保护的void(Bundle savedInstanceState){ //TODO自动生成的方法存根 super.onCreate(savedInstanceState); setOnItemClickListener(这个); } @凌驾 公共链接(AdapterView arg0、视图arg1、内部arg2、, 长arg3){ //TODO自动生成的方法存根 } }
私有类TestActivity扩展了ListActivity实现的ListListener
{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setOnItemClickListener(这个);
}
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
}
}

我首先阅读了Egor answer,用谷歌搜索实现并编写了与您相同的代码。都谢谢。一切正常。非常感谢。现在我必须检查点击了哪个项目的索引。我首先阅读了Egor的答案,谷歌的实现,并编写了与您相同的代码。都谢谢。一切正常。非常感谢。现在我必须检查单击了哪个项目索引。