2013-02-27 3 views
0

Я собираюсь сделать это.Добавление кнопки на вид

я не нашел каких-либо рабочего раствора (попробовал несколько из StackOverflow)

Сценарий (это фактическое скриншот того, что уже сделано):

enter image description here

У меня есть деятельность, которая имеет a Посмотреть как его атрибут.

Этот вид добавляет другой вид через View.addView (myView).

Теперь я хочу, чтобы добавить кнопку MyView (конкретно: после того, как MotionEvent.ACTION_UP кнопка должна появиться в правом нижнем углу (это начнет роботу диск трек))

Вот ярлык моего кода:

public class ModeRouting extends View { 
public ModeRouting(Context context) { 
    super(context); 
Button asuroStartButton = new Button(context) //does not work 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    int actionevent = event.getAction(); 
    if (actionevent == MotionEvent.ACTION_UP 
      || actionevent == MotionEvent.ACTION_CANCEL) { 
asuroStartButton.visible=true; 
view.add(asuroStartButton); 
    } 
    return true; 
} 
} 

и моя активность:

//in constructor 
contentView = (FrameLayout) findViewById(R.id.content); 
onClickListenerFacade(routingMode, route); 

//this removes all views from stack and places the new one on the view 
private void onClickListenerFacade(View v, final View target) { 
    v.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      contentView.removeAllViews(); 
      contentView.setBackgroundColor(0xff000000); 
      contentView.addView(target); 
      modeSelectorAnimation(); 
     } 
    }); 
} 

Я пытался создать кнопку в моем mainactivity.xml и экземпляр в моей mainactivity.

Я пропустил какой-то пункт здесь, но я не уверен, какой.

Поскольку мой взгляд является чисто динамическим (без layout.xml), я не думаю, что должен использовать layout.xml (возможно, это моя блокировка разума), но вместо этого динамически настраивать атрибуты кнопок.

Подсказка приветствуется!

+0

Итак, в чем вопрос? – Simon

+0

Я не могу создать экземпляр кнопки, и я не могу добавить ее. Мне нужен статический xml, чтобы добавить кнопку и где мне нужно создать экземпляр (mainactivity?). wint статический xml переопределить/уничтожить динамический контент (например, с помощью setContentView (R.layout.xy) уничтожит мой трек?) – Wandang

+1

Вам не нужен статический xml для кнопки. Вы можете использовать что-то вроде: Button sampleButton = new Button (контекст); – lokoko

ответ

1

Вы хотите расширить ViewGroup, а не просто View (LinearLayout, RelativeLayout, FrameLayout и т. Д.) - они обрабатывают дочерние представления для вас.

+0

спасибо. теперь я получил функцию this.addView (кнопка). Единственная проблема в том, что кнопка не появится. я установил ширину/heigth 200,200 и видимость = true, кроме того bringtofront(). все еще не видно. Продолжаем пробовать – Wandang

+0

Что вы расширили? Вы, скорее всего, хотите расширить RelativeLayout. В этом случае вы захотите вызвать setLayoutParams(), передав RelativeLayout.LayoutParams, указав местоположение, в котором вы хотите видеть. –

+0

О, это проблема. Я вышел из ViewGroup. Собираюсь исправить это завтра, спасибо – Wandang

0

Возможно, вам нужно обновить весь вид/активность. Попробуйте сделать это в методе onResume, возможно, это поможет. Но поскольку вы не используете layout.xml, я не уверен, что это вам очень помогает.

@Override 
protected void onResume(){ 
super.onResume(); 
setContentView(R.layout.activity_main); 
} 
+0

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

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