2015-06-23 4 views
0

Я хочу создать простую кнопку изображения, которая запускает новое действие (CameraActivity), в данном случае - простое приложение для камеры, которое делает снимки и сохраняет их в каталоге.Не удалось запустить новую активность, продолжает обновляться

MainActivity:

public void CameraButton() { 

    ImageButton Click = (ImageButton) findViewById(R.id.CameraButton); 
    Click.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(MainActivity.this,CameraActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

CameraActivity.class:

import java.io.File; 

import android.view.View; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Environment; 
import android.provider.MediaStore; 
import android.widget.Toast; 

public class CameraActivity extends MainActivity 
{ 

static int TAKE_PIC = 1; 
Uri outPutfileUri; 

public void onClick(View v) 
{ 

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File file = new File(Environment.getExternalStorageDirectory(), 
      "MyPhoto.jpg"); 
    outPutfileUri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutfileUri); 
    startActivityForResult(intent, TAKE_PIC); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == TAKE_PIC && resultCode == RESULT_OK) { 
     Toast.makeText(this, outPutfileUri.toString(), Toast.LENGTH_LONG).show(); 
    } 
} 
} 

activity_main XML файл:

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/CameraButton" 
    android:background="@drawable/camerapicture" 
    android:onClick="onClick" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" /> 

Каждый раз, когда я нажимаю кнопку, приложение продолжает освежать себя. Я объявил CameraActivity в файле манифеста.

+0

Освежающий быть причина этого «CameraActivity extends MainActivity» использовать эту функцию «CameraActivity extends Activity» И зачем использовать этот андроид: onClick = "onClick" –

ответ

0

Пожалуйста, измените свой код CameraActivity

0

Вы начинаете CameraActivity от MainActivity, но вы расширяете CameraActivity от MainActivity, поэтому непосредственно в CameraActivity запускаете MainActivity, так что смотрите освежающий. для решения этой проблемы необходимо расширяет CameraActivity от класса активности, как этого

public class CameraActivity extends Activity 
{ 
    //your Activity body 
} 

или если вы используете AppCompact, то вам нужно простирается от ActionBarActivity как этого

public class CameraActivity extends ActionBarActivity 
{ 
    //your Activity body 
} 

я хоп это поможет вам

+0

Он работает, спасибо. Но теперь, как только кнопка нажата, вместо выполнения действия открывается пустая страница. Где я ошибся? – User

+0

@User, так что если это работает, то, пожалуйста, примите мой ответ. –

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