Java Android-自定义listview的输出值-获取错误

Java Android-自定义listview的输出值-获取错误,java,android,listview,android-listview,android-custom-view,Java,Android,Listview,Android Listview,Android Custom View,问题:试图输出所选listview的描述。下面是我的代码,我还有一个listview的示例以及创建它的代码。我有一个显示三个值的自定义列表视图,当我单击第二行(3/12/04 Gas$60.00)时,我希望它输出描述(“Gas”) onItemClick是我的问题所在ItemMenuActivity 谢谢你的帮助和时间 listview中的示例数据: 3/12/04 New Shoes $50.00 3/12/04 Gas $60.00 3/12/04 Food $10.00 Item

问题:试图输出所选listview的描述。下面是我的代码,我还有一个listview的示例以及创建它的代码。我有一个显示三个值的自定义列表视图,当我单击第二行(3/12/04 Gas$60.00)时,我希望它输出描述(“Gas”)

onItemClick
是我的问题所在
ItemMenuActivity

谢谢你的帮助和时间


listview中的示例数据:

3/12/04 New Shoes $50.00

3/12/04 Gas $60.00

3/12/04 Food $10.00

ItemMenuActivity.java
公共类ItemMenuActivity扩展活动实现AdapterView.OnItemClickListener
{
字符串accountName;
ArrayList项目详细信息;
数据库处理程序数据库;
ListView项目视图;
私有EditText dateEditText、costEditText、desEditText;
私人纺纱机分类纺纱机;
私人按钮btnAddItem,btnCancel;
私有布尔errlvl;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.项目菜单布局);
//启动数据库
database=新的DatabaseHandler(getApplicationContext());
//启动/配置ListView
itemView=(ListView)findViewById(R.id.itemListView);
setOnItemClickListener(this);
Bundle Bundle=getIntent().getExtras();
String account_name=bundle.getString(“AccountName”);
setTitle(账户名称);
账户名称=账户名称;
displaySpecificItemListView(accountName);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
//TextView editTextDescription=((TextView)view.findViewById(R.id.editTextDescription));
//字符串temp=editTextDescription.getText().toString();
//Toast.makeText(this,temp,Toast.LENGTH_LONG).show();
}
}
添加_item_layout.xml

ItemListViewBaseAdapter.java
公共类ItemListViewBaseAdapter扩展了BaseAdapter
{ 
私有ArrayList_数据;
语境;
ItemListViewBaseAdapter(ArrayList数据,上下文c)
{
_数据=数据;
_c=c;
}
public int getCount()
{
//TODO自动生成的方法存根
返回_data.size();
}
公共对象getItem(int位置)
{
//TODO自动生成的方法存根
返回_data.get(位置);
}
公共长getItemId(int位置)
{
//TODO自动生成的方法存根
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图)
{
//TODO自动生成方法存根
视图v=转换视图;
如果(v==null)
{
LayoutInflater vi=(LayoutInflater)\u c.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(R.layout.custom_item_listview_layout,null);
}
TextView itemDate=(TextView)v.findViewById(R.id.dateTextView);
TextView itemDescription=(TextView)v.findViewById(R.id.descriptionTextView);
TextView itemAmount=(TextView)v.findViewById(R.id.amountTextView);
项目accMsg=_data.get(位置);
itemDate.setText(accmg.entry\u date);
itemsdescription.setText(accmg.item_description);
//数字格式
如果(accMsg.item_价格>0)
{
String myString=String.format(“%.2f”,accmg.item\u price);
字符串FormattedString=“$”+myString;
itemAmount.setText(格式化字符串);
}
其他的
{
双温=数学绝对值(会计项目价格);
String myString=String.format(“%.2f”,temp);
字符串FormattedString=“-$”+myString;
itemAmount.setText(格式化字符串);
itemAmount.setTextColor(Color.parseColor(#088A08”);
}
返回v;
}
}
item_menu_layout.xml

在您正在执行的
onimclick()方法中

TextView editTextDescription = ((TextView)view.findViewById(R.id.editTextDescription));
获取您的文本视图。这与您发布的XML(add_item_layout.XML)匹配,但您的适配器代码说明了不同的情况

在适配器中,对于新行,您正在膨胀
custom\u item\u listview\u layout
,您的“description”文本视图ID是
R.ID.descriptionTextView

因此,如果您在
onItemClick()
中进行此编辑,应该可以解决您的问题:

TextView editTextDescription = ((TextView)view.findViewById(R.id.descriptionTextView));

谢谢,心烦意乱,我甚至检查了一下以确保调用了正确的TextView变量。谢谢你的时间。
public class ItemListViewBaseAdapter extends BaseAdapter
{ 
private ArrayList<Item> _data;
Context _c;

ItemListViewBaseAdapter (ArrayList<Item> data, Context c)
{
    _data = data;
    _c = c;
}

public int getCount()
{
    // TODO Auto generated method stub
    return _data.size();
}
public Object getItem(int position)
{
    // TODO Auto generated method stub
    return _data.get(position);
}
public long getItemId(int position)
{
    // TODO Auto generated method stub
    return position;
}
public View getView (int position, View convertView, ViewGroup parent)
{
    // TODO Auto generate method stub
    View v = convertView;

    if (v == null)
    {
        LayoutInflater vi = (LayoutInflater)_c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.custom_item_listview_layout, null);
    }

    TextView itemDate = (TextView)v.findViewById(R.id.dateTextView);
    TextView itemDescription = (TextView)v.findViewById(R.id.descriptionTextView);
    TextView itemAmount = (TextView)v.findViewById(R.id.amountTextView);

    Item accMsg = _data.get(position);
    itemDate.setText(accMsg.entry_date);
    itemDescription.setText(accMsg.item_description);

    //NumberFormat format
    if(accMsg.item_price > 0)
    {
        String myString = String.format("%.2f", accMsg.item_price);
        String FormattedString = "$"+myString;
        itemAmount.setText(FormattedString);
    }
    else
    {
        double temp = Math.abs(accMsg.item_price);
        String myString = String.format("%.2f", temp);
        String FormattedString = "-$"+myString;
        itemAmount.setText(FormattedString);
        itemAmount.setTextColor(Color.parseColor("#088A08"));
    }

    return v;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ListView
    android:id="@+id/itemListView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:dividerHeight="0.1dp"
    android:divider="#81A594"
    android:layout_below="@+id/dateTitle"/>

</RelativeLayout>
TextView editTextDescription = ((TextView)view.findViewById(R.id.editTextDescription));
TextView editTextDescription = ((TextView)view.findViewById(R.id.descriptionTextView));