[英]How to get a integer value about Arraylist index
如何獲取arraylist項目索引的整數值,如果單擊arraylist第五個數字,則整數值a=5
我該怎么做?
ArrayList a;
al = new ArrayList();
for(int i = 0; i < linksArray.length(); ++i) {
a.add(linksArray.getJSONObject(i).get("fullText"));
}
我在“ a”中添加了json值
adapter = new ArrayAdapter(this,R.layout.activity_listview_2, a);
listviewMakale.setAdapter(adapter);
然后我有listview click函數,我想如果單擊第五個元素,則int indexItem = 5;
我不想用listview單擊監聽器位置值,我想用arraylist索引。
所有活動代碼,主要問題是用戶是否在edittext中搜索任何內容
ListView listviewMakale;
ArrayList a22 = new ArrayList();
ArrayList al;
private ArrayAdapter adapter;
private EditText ara;
String url = "myurl";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.makale);
ActionBar actionBar = getSupportActionBar();
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
listviewMakale = (ListView)findViewById(R.id.listviewMakale);
StringRequest request = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String string) {
parseJsonData(string);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getApplicationContext(), "Hata-Tekrar Deneyiniz!!", Toast.LENGTH_SHORT).show();
}
});
StringRequest request2 = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String string) {
parseJsonDataLinks(string);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getApplicationContext(), "Hata-Tekrar Deneyiniz!!", Toast.LENGTH_SHORT).show();
}
});
//baslık için
RequestQueue rQueue = Volley.newRequestQueue(makale.this);
rQueue.add(request);
//linkler için
RequestQueue rQueue2 = Volley.newRequestQueue(makale.this);
rQueue2.add(request2);
}
void parseJsonData(String jsonString) {
try {
JSONObject object = new JSONObject(jsonString);
JSONArray linksArray = object.getJSONArray("makale");
al = new ArrayList();
for(int i = 0; i < linksArray.length(); ++i) {
al.add(linksArray.getJSONObject(i).get("fullText"));
}
adapter = new ArrayAdapter(this,R.layout.activity_listview_2, al);
listviewMakale.setAdapter(adapter);
EditText ara=(EditText) findViewById(R.id.ara);
listviewMakale.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final String linkler="url"+a22.get(position);
Toast.makeText(makale.this,String.valueOf(al.indexOf(position)),Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(makale.this);
builder.setTitle("Makale");
builder.setMessage("");
builder.setNegativeButton("İPTAL", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id) {
}
});
builder.setPositiveButton("TAMAM", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(linkler), "text/html");
startActivity(intent);
}
});
builder.show();
}
});
ara.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
makale.this.adapter.getFilter().filter(charSequence);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
//linklere erişiyoruz
void parseJsonDataLinks (String jsonString2) {
try {
JSONObject object2 = new JSONObject(jsonString2);
JSONArray linksArray2 = object2.getJSONArray("makale");
for(int j = 0; j < linksArray2.length(); ++j) {
a22.add(linksArray2.getJSONObject(j).get("link"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
您可以像這樣直接從適配器獲取想要的物品:
adapter.getItem(position)
位置是項目的索引。
您可以在ListView
OnItemClickListener
上獲得點擊位置。 該位置將是您的ArrayList
位置。 您可以輕松地從ArrayList
檢索該位置的值。
your_list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
String full_text = adapterView.getAdapter().getItem(pos);
Log.w("Clicked Row", "Data on position " + pos + " is " + full_text);
}
});
您還可以使用String full_text = your_array_list.get(pos);
代替String full_text = adapterView.getAdapter().getItem(pos);
。 兩者都會返回相同的值。
一旦將ArrayList
與ListView
綁定,那么它將不會更改其位置,直到刷新或重新加載它為止。
因此,您可以通過ArrayList
的ListView
單擊位置來獲取值。
你可以喜歡。
arrayList.get(index);
無論您傳遞什么,它將返回對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.