Android 从自定义列表视图中获取字符串
所以我要做的是在点击一个项目时得到一个字符串值。 但是通过这段代码,当我点击这个项目时,我得到了转换器类的位置或者类似的东西,我不明白。 “主要活动$Converter@30e6eb1“敬酒。我只希望主题部分出现在祝酒词中Android 从自定义列表视图中获取字符串,android,android-studio-2.0,Android,Android Studio 2.0,所以我要做的是在点击一个项目时得到一个字符串值。 但是通过这段代码,当我点击这个项目时,我得到了转换器类的位置或者类似的东西,我不明白。 “主要活动$Converter@30e6eb1“敬酒。我只希望主题部分出现在祝酒词中 @Override protected void onPostExecute(String result) { JSONObject jsonObject; JSONArray jsonArray; Custom
@Override
protected void onPostExecute(String result) {
JSONObject jsonObject;
JSONArray jsonArray;
CustomAdapter customAdapter;
ListView listview;
listview = (ListView) findViewById(R.id.xlistview);
customAdapter = new CustomAdapter(getApplicationContext(), R.layout.row_layout);
listview.setAdapter(customAdapter);
//Log.d("json_raw_home",result);
if (result != null) { //Log.d("post execute",result);
try {
jsonObject = new JSONObject(result);
jsonArray = jsonObject.getJSONArray("data");
int count = 0;
String subject, description;
while (count < jsonArray.length()) {
JSONObject JO = jsonArray.getJSONObject(count);
subject = JO.getString("subject");
description = JO.getString("description");
Converter converter = new Converter(subject, description);
customAdapter.add(converter);
count++;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String item = String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(getApplicationContext(),item, Toast.LENGTH_LONG).show();}
});
}
}
public class CustomAdapter extends ArrayAdapter {
List list = new ArrayList();
public CustomAdapter(Context context, int resource) {
super(context, resource);
}
@Override
public void add(Object object) {
super.add(object);
list.add(object);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
row = convertView;
ContactHolder contactHolder;
if(row==null)
{
LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflater.inflate(R.layout.row_layout,parent,false);
contactHolder=new ContactHolder();
contactHolder.tv_subject=(TextView)row.findViewById(R.id.xsubject_tv);
contactHolder.tv_description=(TextView)row.findViewById(R.id.xdescription_tv);
row.setTag(contactHolder);
}
else
{
contactHolder=(ContactHolder)row.getTag();
}
Converter converter = (Converter) this.getItem(position);
contactHolder.tv_subject.setText(converter.getSubject());
contactHolder.tv_description.setText(converter.getDescription());
return row;
}
public class ContactHolder{
TextView tv_subject,tv_description;
}
}
public class Converter {
private String subject,description;
public Converter(String subject, String description) {
this.setSubject(subject);
this.setDescription(description);
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
@覆盖
受保护的void onPostExecute(字符串结果){
JSONObject JSONObject;
JSONArray JSONArray;
自定义适配器自定义适配器;
列表视图列表视图;
listview=(listview)findViewById(R.id.xlistview);
customAdapter=新的customAdapter(getApplicationContext(),R.layout.row\u layout);
setAdapter(customAdapter);
//Log.d(“json_raw_home”,result);
如果(result!=null){//Log.d(“执行后”,result);
试一试{
jsonObject=新的jsonObject(结果);
jsonArray=jsonObject.getJSONArray(“数据”);
整数计数=0;
字符串主题、描述;
while(count
}改变
String item = String.valueOf(parent.getItemAtPosition(position));
到
改变
到
将转换器对象传递给CustomAdapter以列出它们。所以,如果调用getItem,则必须将对象连接到转换器。所以, 改变
String item = String.valueOf(parent.getItemAtPosition(position));
到
因此,最终代码:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String item = ((Converter)parent.getAdapter().getItem(position)).getSubject();
Toast.makeText(getApplicationContext(),item, Toast.LENGTH_LONG).show();}
});
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串项=((转换器)parent.getAdapter().getItem(position)).getSubject();
Toast.makeText(getApplicationContext(),item,Toast.LENGTH_LONG.show();}
});
将转换器对象传递给CustomAdapter以列出它们。所以,如果调用getItem,则必须将对象连接到转换器。所以,
改变
String item = String.valueOf(parent.getItemAtPosition(position));
到
因此,最终代码:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String item = ((Converter)parent.getAdapter().getItem(position)).getSubject();
Toast.makeText(getApplicationContext(),item, Toast.LENGTH_LONG).show();}
});
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串项=((转换器)parent.getAdapter().getItem(position)).getSubject();
Toast.makeText(getApplicationContext(),item,Toast.LENGTH_LONG.show();}
});
父项。getItemAtPosition(位置);返回从getItem(position)返回的位置处的对象
转换器项=(转换器)父项.getItemAtPosition(位置)
Toast.makeText(getApplicationContext(),item.getSubject(),Toast.LENGTH_LONG.show() parent.getItemAtPosition(位置);返回从getItem(position)返回的位置处的对象
转换器项=(转换器)父项.getItemAtPosition(位置)
Toast.makeText(getApplicationContext(),item.getSubject(),Toast.LENGTH_LONG.show() 你是上天派来的我需要一个家庭教师你能帮我吗