Android 如何从Edittext获取文本以命名图片

Android 如何从Edittext获取文本以命名图片,android,android-edittext,Android,Android Edittext,我试图让编辑文本命名已捕获的图片,但当我尝试时,它崩溃了。是否仍有这样做? 如果我这么做的话,效果会很好 String photofile="test"+"jpg"; 但不能编辑文本 public class CameraActivity extends AppCompatActivity implements SurfaceHolder.Callback { EditText editText = (EditText)findViewById(R.id.cardnumberbox)

我试图让编辑文本命名已捕获的图片,但当我尝试时,它崩溃了。是否仍有这样做? 如果我这么做的话,效果会很好

    String photofile="test"+"jpg";
但不能编辑文本

public class CameraActivity extends AppCompatActivity implements  SurfaceHolder.Callback {
EditText editText = (EditText)findViewById(R.id.cardnumberbox);


File file_image= getDirc();
if (!file_image.exists() && !file_image.mkdirs()){
Toast.makeText(getApplicationContext(),"Kan ikke lave mappe til at gemme billederne",Toast.LENGTH_SHORT).show();
                        return;
                    }
String photofile=editText.getText().toString()+".jpg";
String file_name=file_image.getAbsolutePath()+"/" +photofile;
File picfile=new File(file_name);
try {
outputStream=new FileOutputStream(picfile);
outputStream.write(bytes);
outputStream.close();
} catch (FileNotFoundException e){}
            catch (IOException ex) {}
            finally {

                    }

Toast.makeText(getApplicationContext(),"Bilederne er gemt",Toast.LENGTH_SHORT).show();
refreshcamera();
refreshgallery(picfile);
        }
    };
}
private File getDirc(){
File folder= new File("sdcard");

if (!folder.exists()) {
folder.mkdir();
        }
return  new File(folder,"pics");
    }
07-09 13:14:07.478 3128-3128/camapp.camapp E/AndroidRuntime:致命异常:主 java.lang.RuntimeException:无法实例化活动组件信息{camapp.camapp/camapp.camapp.CameraActivity}:java.lang.NullPointerException 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2021) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)上 在android.app.ActivityThread.access$600(ActivityThread.java:140) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228) 位于android.os.Handler.dispatchMessage(Handler.java:99) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:4895) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.NullPointerException 位于android.support.v7.app.AppCompateDelegateImplbase。(AppCompateDelegateImplbase.java:72) 在android.support.v7.app.AppCompateDelegateImplv7。(AppCompateDelegateImplv7.java:146) 在android.support.v7.app.AppCompateDelegateImplv11。(AppCompateDelegateImplv11.java:28) 在android.support.v7.app.AppCompateDelegateImplv14。(AppCompateDelegateImplv14.java:41) 在android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:193)中 在android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:173)中 位于android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:511) 位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:183) 在camapp.camapp.CameraActivity上。(CameraActivity.java:31) 位于java.lang.Class.newInstanceImpl(本机方法) 位于java.lang.Class.newInstance(Class.java:1319) 位于android.app.Instrumentation.newActivity(Instrumentation.java:1068) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2012)上 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)上 在android.app.ActivityThread.access$600(ActivityThread.java:140) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228) 位于android.os.Handler.dispatchMessage(Handler.java:99) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:4895) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761) 在dalvik.system.NativeStart.main(本机方法)


打算打电话拍摄照片

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);  
startActivityForResult(cameraIntent, CAMERA_REQUEST);  
您将在
onActivityResult()方法中获得图像

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        Bitmap imageBitmap = (Bitmap) extras.get("data");
    }
}
然后将其写入内存

String photofile=editText.getText().toString().trim()+".jpg"; 

// The openfileOutput() method creates a file on the phone/internal storage in the context of your application  
final FileOutputStream fos = openFileOutput(photofile, Context.MODE_PRIVATE); 

// Use the compress method on the BitMap object to write image to the OutputStream 
bm.compress(CompressFormat.JPEG, 90, fos); 
或者使用此选项在外部存储上进行保存

来自开发者文档

File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES);
File file = new File(path, editText.getText().toString().trim()+".jpg");
要阅读它,请使用

Bitmap bitmap = BitmapFactory.decodeFile(file); 
我也建议
public class Your_Class_Name extends Activity {

    //declaration is here but you can not access because it is still not available in java side
    private EditText myEdit; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //this is place where you connect all your xml content in java
        setContentView(R.layout.Your_XML_FileName); 
        ...
        //now you can access everything from xml side suppose and EditText with id edittext
        myEdit = (EditText)findViewById(R.id.edittext);
    }
}