如何将textview上的整数值提取到listview onclicklistener中的另一个整数

时间:2015-05-13 16:52:23

标签: android json android-listview

我正在处理一个有ListView且包含一个TextView的Android项目,以显示联系人和联系人以json的形式存储在我的网站中。

json link for contacts

我能够解析我没有问题的联系人。但问题是解析后的数据在TextView中显示为“776057619”之类的数字,我希望这个TextView数字被采用并存储在一个单独的变量中。通过这样做,我可以使用它来提示用户“你要调用那个特定号码的天气”??。但我不知道如何将这个号码从TextView提取到一个单独的变量,并用来调用ListView的{​​{1}}

下面是我的代码

OnItemClickListener

4 个答案:

答案 0 :(得分:0)

由于你实际上需要字符串,所以你根本不必转换为整数:

TextView v = (TextView)view.findViewById(R.id.contactno); 
...
callIntent.setData(Uri.parse("tel:"+ v.getText().toString()));  

或者如果由于某种原因确实需要将该数字存储在变量中,则应使用String代替

TextView v = (TextView)view.findViewById(R.id.contactno); 
string myNum = v.getText().toString();
...
callIntent.setData(Uri.parse("tel:" + myNum));

答案 1 :(得分:0)

我建议获取与该位置相关联的数据,而不是尝试解析视图以获取它。

您可以使用adapter.getItem(int pos)adapter获取数据。只需使adapter final或成员变量在OnItemClickListener中访问它。

答案 2 :(得分:0)

首先你应该检查你的清单文件,你应该在“应用程序”标签之外,但在“清单”标签内:

puts t.inspect

尝试在代码中执行以下操作:

@league.teams.each

您应该使用String值而不是int

答案 3 :(得分:0)

删除mynum上的双引号。您也可以使用基本oop来保存整数值。 fyi,myNum不一定是整数。它可以是一个字符串

ListView lv = getListView();    
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            /* this is where i have problem how to get  that number without converting to string*/
            TextView v = (TextView)view.findViewById(R.id.contactno); 
            int myNum = Integer.parseInt(v.getText().toString());

            setNumber(myNum); //saving the myNum variable 
            System.out.println("number is: " + getNumber());//if you want to get the value of myNum, just call the getNumber()

                     if (position == 0){
                         Toast.makeText(getApplicationContext(), "yes you done it!!", Toast.LENGTH_SHORT).show();
                         Intent callIntent = new Intent(Intent.ACTION_CALL); 

                       callIntent.setData(Uri.parse("tel:"+ myNum));//remove the quotation for myNum

                      startActivity(callIntent);
                     }

        }



private int number;
void setNumber(int number){
    this.number=number;
}

int getNumber(){
    return number;
}