2013-04-03 2 views
0

У меня в моем приложении список, отображающий элементы из базы данных. Каждый элемент списка отображает содержимое моего элемента базы данных, а также кнопку.Получить длину строки по ее идентификатору (R.id.)

Позже я заставлю эту кнопку открыть меню набора номера телефона и позвонить по номеру при нажатии. Теперь я хочу отобразить эту кнопку только тогда, когда длина элемента из моей базы данных, связанная с списком, равна 7. Моя проблема заключается в том, чтобы получить длину этой строки, поскольку она вызывается из моей базы данных, используя идентификатор объекта ,

Вот мой код, элемент Я хотел бы, чтобы проверить длину является «телефон» с R.id.telephone, он вызывается из базы данных, а затем отправляется на другой вид деятельности:

private void displayListView() { 

    // getExtra 
    Bundle bundle = getIntent().getExtras(); 
    String title = bundle.getString("title", "Choose here :"); 
    String inInterval = bundle.getString("inInterval"); 
    Log.d(TAG, "inInterval = " + inInterval); 

    poititle.setText(title); 

    // put the results of the method in a cursor 
    Cursor c = dbHelper.findPoiInTable(inInterval); 
    String[] columns = new String[] { DatabaseAdapter.COL_NAME, 
      DatabaseAdapter.COL_STREET, DatabaseAdapter.COL_WEBSITE, 
      DatabaseAdapter.COL_TELEPHONE, DatabaseAdapter.COL_REMARKS, 
      DatabaseAdapter.COL_PRICE }; 
    int[] to = new int[] { R.id.name, R.id.street, R.id.website, 
      R.id.telephone, R.id.remarks, R.id.price }; 
    cursorAdapter = new SimpleCursorAdapter(this, R.layout.poi_info, c, 
      columns, to, 0); 

    ListView listView = (ListView) findViewById(R.id.poilistview); 
    // Assign adapter to ListView 
    listView.setAdapter(cursorAdapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     // Comportement des éléments de la listview 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      Intent i = new Intent(getApplicationContext(), 
        POIActivity.class); 

      String name = ((TextView) view.findViewById(R.id.name)) 
        .getText().toString(); 
      String website = ((TextView) view.findViewById(R.id.website)) 
        .getText().toString(); 
      String telephone = ((TextView) view 
        .findViewById(R.id.telephone)).getText().toString(); 
      String remarks = ((TextView) view.findViewById(R.id.remarks)) 
        .getText().toString(); 
      String price = ((TextView) view.findViewById(R.id.price)) 
        .getText().toString(); 
      // i.putExtra(ID_EXTRA, name) ; 
      i.putExtra(ID_NAME, name); 
      i.putExtra(ID_WEBSITE, website); 
      i.putExtra(ID_TELEPHONE, telephone); 
      i.putExtra(ID_REMARKS, remarks); 
      i.putExtra(ID_PRICE, price); 
      startActivity(i); 
     } 

    }); } 

Здесь это то, что я пробовал: я создал метод callbuttonManagement() в одной и той же деятельности, которую я назвал моего diplsayListView() метод, код которого находится выше, и что я определяю так:

public void callbuttonManagement() { 

    int countTelephone = ID_TELEPHONE.length(); 
    if (countTelephone == 7) 
    { 
     callButton.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     callButton.setVisibility(View.GONE); 
    } 


} 

это происходит сбой мое приложение и LogCat указывает на исключение nullpointer. Какие-либо предложения ? Благодаря !

+0

Адрес этой страницы: ID_TELEPHONE? –

+0

is callbuttonУправление в деятельности POIActivity? –

+0

ID_TELEPHONE определяется в макете, упорядочивая элементы списка, например: Я сделал это только потому, что мне нужно было определить его где-то, иначе это не сработает. – Phalanx

ответ

0
class member boolean mShowButton; 
String telephone = ((TextView) view 
       .findViewById(R.id.telephone)).getText().toString(); 

if (telephone.length() == 7) 
{ 
    mShowButton = true: 
} 

public void callbuttonManagement() { 


if (mShowButton) 
{ 
    callButton.setVisibility(View.VISIBLE); 
} 
else 
{ 
    callButton.setVisibility(View.GONE); 
} 


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