2013-03-05 2 views
1

У меня есть диалог и текст внутри представления eache, на который я могу щелкнуть. Я хочу, чтобы все точки зрения были доступны только для текста.Как сделать весь просмотр в диалоговом окне доступным?

код:

 final Dialog dialog = new Dialog(List_Lists.this); 
     dialog.setContentView(R.layout.dialog_edit_tables); 
     dialog.setTitle("Action for " + table); 


     TextView delete = (TextView) dialog 
       .findViewById(R.id.tvDeleteTable); 
     TextView cancel = (TextView) dialog.findViewById(R.id.tvCancel); 

     OnClickListener l = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       dbAdapter = new DBmethods(getApplicationContext()); 
       switch (v.getId()) { 


       case R.id.tvDeleteTable: 
        viewListsAdapter.listsV.remove(pos); 
        dbAdapter.deleteTable(table); 
        break; 
       case R.id.tvCancel: 
        dialog.dismiss(); 
        break; 
       case R.id.bTableRenameName: 

        if(dbAdapter.checkTableNameOK(List_Lists.this ,newName.getText().toString())){ 

         viewListsAdapter.listsV.remove(pos); 
         viewListsAdapter.listsV.add(pos, newName.getText().toString().trim()); 
         dbAdapter.renameTable(table , newName.getText().toString().trim()); 
         renamedialog.dismiss(); 
        }; 

        break; 

       default: 
        break; 
       } 
       // if button is clicked, close the custom dialog 
       dialog.dismiss(); 
       lv.invalidateViews(); 
      } 
     }; 

     delete.setOnClickListener(l); 
     cancel.setOnClickListener(l); 

     dialog.show(); 
    } 
}); 

}

, как я сказал, этот код отлично работает, если пользователь нажмет на текст внутри зрения, но пустой взгляд, очевидно, привычка отвечать. благодаря !

if user press on red spot it activate the enter , if green than duplicate and so on

, если пользователь нажмет на красном месте его активации ввести, если зеленый не дублировать и так далее ... текущее состояние и есть нажать на слово, если и нажмите на цветные пятна него ничего не будет делать

+0

Извините, но я не получил вас – Pragnani

+0

make layout clickable @Jesus Dimrix – duggu

+0

У меня есть диалог с видом и текстом внутри каждого вида. Я хочу выполнить действие при нажатии на экранное изображение. в этом диалоговом окне мне нужно нажать текст внутри представления. надеюсь, что я объясню правильно –

ответ

1

Если им не неправильно вам это нужно сделать макет интерактивными

попробовать что-то вроде этого вы можете добавить OnClickListener на него:

//onCreate 
LinearLayout layout = (LinearLayout) findViewById(R.id.LinearLayout01); 
layout.setOnClickListener(yourOnClickListener); 

должны работать;)

0

создать идентификатор вашего dialog_edit_tables

Пусть говорят android:[email protected]+id\testing в вашем XML.

сейчас пишу этот

LinearLayout yourlayout = (LinearLayout) findViewById(R.id.testing); 
yourlayout.setOnClickListener(l); 

надеюсь, что это поможет.

+0

ваш ответ велик, но я неправильно понял, что хочу. Я добавил изображение к вопросу. спасибо за помощь –

0

Вы не указали XML-макет, но нужно настроить ширину интерактивного текстового вида fill_parent, также убедитесь, что ваш родительский макет также имеет ширину, заданную как fill_parent.

OnClickListener не основан на тексте, основанном на фактическом компоненте, поэтому выглядит так, как будто для атрибута layout_width установлено значение wrap_content, поэтому компонент представляет собой только длину текста, поэтому только там, где текст , можно щелкнуть. Надеюсь, это имеет смысл.

0

Если я не ошибаюсь, вы используете listview или tableview для отображения текста.
Вы можете сделать одно.
Сделайте текстовое изображение layout_width as fill_parent
Таким образом, вы сможете получить доступ к тому месту, которое вы отметили.
Надеюсь, это поможет.