Hits hits = indexSearcher.search( parser.parse("("+ "text:" +mEdit.getText().toString() + ")"));
String txt2[] =new String[100];
String txt="";
for (int i = 0; i < hits.length(); i++)
{
Document hitDoc = hits.doc(i);
Log.i("TestAndroidLuceneActivity", "Lucene: " +hitDoc.get("title")+ hitDoc.get("path"));
txt=hitDoc.get("title");
txt2[i]=txt;
final String path= hitDoc.get("path");
lv.setAdapter(new ArrayAdapter<String>(Lucenconcept.this,android.R.layout.simple_list_item_1 ,txt2));
}
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) {
Intent intent = new Intent(Lucenconcept.this,ShowDetails.class);
Bundle bundle = new Bundle();
bundle.putString("keyLink", path );
intent.putExtras(bundle);
startActivity(intent);
}
});
我编写了这段代码,用于切换另一个活动但在bundle中没有不同的URL-id或路径ID。存储了每个url字符串,但是当我进入下一个活动时。
String link = bundle.getString("keyLink");
Toast.makeText(this,link,Toast.LENGTH_SHORT).show();
在下一个活动中检索URL-id或路径的代码,但没有区别,它给出了常量url。 请帮帮我,我无法确定位置。
答案 0 :(得分:0)
for (int i = 0; i < hits.length(); i++)
{
Document hitDoc = hits.doc(i);
Log.i("TestAndroidLuceneActivity", "Lucene: " +hitDoc.get("title")+ hitDoc.get("path"));
txt=hitDoc.get("title");
txt2[i]=txt;
final String path= hitDoc.get("path");
...
}
从上面的代码中,似乎路径包含最后一个doc的URL;因为您将所有值存储在相同的路径变量中。
要解决它,您必须获取函数public void onItemClick(...)
上的路径值,该函数包含第三个参数作为列表项的您点击的位置。
在函数onItemClick(...)
Document hitDoc = hits.doc(<listItemPosition>);
txt=hitDoc.get("title");
path= hitDoc.get("path");
Intent intent = new Intent(Lucenconcept.this,ShowDetails.class);
Bundle bundle = new Bundle();
bundle.putString("keyLink", path );
intent.putExtras(bundle);
startActivity(intent);