2013-05-27 3 views
1

У меня есть вопрос андроида/java.Преобразование строки внутри объекта в int

Я использую onClick, чтобы делать клики по моему изображениюПросмотры и обнаружение их тегов (например, android: tag = "2"). После этого мне нужно преобразовать этот тег в int, чтобы я мог использовать его как число для выполнения некоторых вычислений.

Я пытаюсь сделать это следующим образом:

public void onClick(View v) {  
     Object viewID = v.getTag(); 
     int id = ((Integer)viewID).intValue(); 
} 

НО, проблема в том, что я не получаю Int значение внутри моего «ид» переменной. Ошибка говорит:

"java.lang.ClassCastException: java.lang.String не может быть приведен к java.lang.Integer".

Можете ли вы дать мне другой способ преобразования моего тега внутри «viewID» в int и поместить его внутри «id»?

Я новичок в андроид, и я ценю вашу помощь :)

ответ

4

сначала преобразовать в строку, то ИНТ

int id =Integer.parseInt(viewID .toString()); 
4

Если я не понял вас

int id = Integer.parseInt((String)viewID); 
0

Simpley использование:

int i = (Integer) viewID ; 

или, начиная с Java 7, вы можете написать:

int i = (int) viewID ; 
1

Использование Integer.parseInt метод

public void onClick(View v) {  
    int id = 0; // some default value 
    try { 
     id = Integer.parseInt(v.getTag()); 
    } catch (Exception ignored) { } 
} 

Этот код не будет вылетать, если тег не содержит номера

1

вы могли бы попробовать это:

public void onClick(View v) {  
    Object viewID = v.getTag(); 

    int id = -1; 

    if(viewID != null) { 
     try { 
      id = new Integer(viewID.toString()).intValue(); 
     } catch(NumberFormatException nfe) { 
      // wrong format 
     } 
    } 
} 
+0

благодаря своей работе для меня очень полезно –

Смежные вопросы