2013-09-24 4 views
0

Я пытаюсь сделать бычий глаз со случайным цветом, и вместо кругов я буду использовать квадраты.Android - Как начать новую деятельность

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

Это основное мероприятие, которое запускает DrawActivity.

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent coiso = new Intent(this, Draw.class); 
     startActivity(coiso); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

И это деятельность по розыгрышу, которую я хочу начать. (Это не то, что я хочу сделать. Потому что я не могу, проблема впереди)

public class Draw extends View { 

    public Draw(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 
     super.onDraw(canvas); 
    } 
} 

Может кто-нибудь мне помочь? Извините за английский.

ответ

2

Вы это

public class Draw extends View 

Ваш класс не распространяется активность

Вместо этого вы можете сделать, как показано ниже

Draw draw = new Draw(this); 
setContentView(draw); 

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

setContentView(R.layout.activity_main); 
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout); 
// linear layout or relative layout in activity_main.xml. 
// place the layout ahere you want along with other views 
Draw draw = new Draw(this); 
ll.addView(draw); 
// add your customview to linearlayout 

Edit:

Удалить этот

Intent coiso = new Intent(this, Draw.class); 
startActivity(coiso); 

В вашем activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    // customize linear layout to your needs. 
    <LinearLayout 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:id="@+id/linearLayout" 
     android:orientation="vertical" > 
    </LinearLayout> 
     // other widgets 
</RelativeLayout> 

В вашей OnCreate

setContentView(R.layout.activity_main); 
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout); 
Draw draw = new Draw(this); 
ll.addView(draw); 
+0

Мне очень жаль, но это было не очень ясно для меня. Не могли бы вы лучше объяснить? –

+0

@NunoBatalha, какая часть вам непонятна, первый или второй? – Raghunandan

+0

2-й метод. Теперь я понимаю, что необходимо продлить действие, которое должно начаться как одно. Но таким образом я не мог наследовать методы из View. –

0

Ваш Draw класс должен extendActivity, а не View. Поскольку вы хотите запустить новый Activity, класс Draw, это означает, что это должно распространяться на Activity. Кроме того, вам необходимо переопределить onCreate() в классе Draw.

Если ваш класс Черчение является вид, то я хотел бы предложить вам добавить вид на Layout, который вы используете, используя addView()

+0

Но тогда я не могу использовать методы для рисования изображений ... –

0

Вы должны убедиться, что вы меняете Draw extends Activity Вы наклоняете намерение к новой деятельности, без верстки и не OnCreate Насколько я знаю. попробуйте создать обычную игру, которая растягивает Activity и реализует Draw.

public class DrawActivity extends Activity { 

@SuppressLint("ShowToast") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_draw); 
    Toast.makeText(DrawActivity.this, "YO", Toast.LENGTH_LONG); 
} 

и оттуда реализовать свои функции рисования. или создать класс JAVA, который реализует ваши потребности в рисовании и использовать его на главном экране.

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