public class CompanySearchActivity extends RathbonesActivity {
private CompanySearchAdapter mStockListAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.companysearch_layout);
final EditText keywordET = (EditText)findViewById(R.id.codeET);
final Button search = (Button)findViewById(R.id.button_stock_add);
final Activity a= CompanySearchActivity.this;
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String keyword = keywordET.getText().toString();
Log.i("keyword: ",keyword);
ArrayList codearr = getResults(keyword);
mStockListAdapter = new CompanySearchAdapter(a,codearr);
ListView listview = (ListView) findViewById(R.id.stocklist);
listview.setAdapter(mStockListAdapter);
listview.setOnItemClickListener(this);
listview.setOnItemLongClickListener(this);
}
});
}
由于此关键字,行listview.setOnItemClickListener(this);
listview.setOnItemLongClickListener(this);
会出错,我也将其替换为'a',但它不起作用。可能的方法是什么?
答案 0 :(得分:2)
如果您希望使用父活动onClick方法,您的活动必须实现OnItemClickListener和OnItemLongClickListener
public class CompanySearchActivity extends RathbonesActivity implements OnItemClickListener, OnItemLongClickListener
{
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
// TODO Auto-generated method stub
return false;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
// TODO Auto-generated method stub
}
}
请注意代码&#34; implements OnItemClickListener, OnItemLongClickListener
&#34;
这对于以这种方式实施它至关重要。
然后你可以打电话:
listview.setOnItemClickListener(CompanySearchActivity.this);
listview.setOnItemLongClickListener(CompanySearchActivity.this);
答案 1 :(得分:0)
this
关键字是对拥有当前正在执行的方法的对象的引用。在这种情况下,this
引用您正在定义的匿名View.OnClickListener
对象。尝试将this
替换为CompanySearchActivity.this
答案 2 :(得分:0)
您的listview
onClick定义应该类似于您的搜索侦听器。
search.setOnClickListener(new View.OnClickListener() {
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String keyword = keywordET.getText().toString();
Log.i("keyword: ",keyword);
ArrayList codearr = getResults(keyword);
mStockListAdapter = new CompanySearchAdapter(a,codearr);
}
});
ListView listview = (ListView) findViewById(R.id.stocklist);
listview.setAdapter(mStockListAdapter);
listview.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
<do somthing when its clicked>
}
});
还确保您有多个布局,这些查看项目(列表视图和搜索) 在companysearch_layout.xml中