无法强制转换视图组以在android中编辑文本

无法强制转换视图组以在android中编辑文本,android,gridview,casting,viewgroup,Android,Gridview,Casting,Viewgroup,我想将数据保存在gridview的edittext中。当用户单击“捕获”按钮时,它将使用方法onPause()中的SharedReference保存数据。但我无法将viewGroup强制转换为edittext <ImageView android:id="@+id/imageView" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center

我想将数据保存在gridview的edittext中。当用户单击“捕获”按钮时,它将使用方法onPause()中的SharedReference保存数据。但我无法将viewGroup强制转换为edittext

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>
这是我的密码

public class MainActivity extends Activity {

private Button btPhoto, btSave;
private GridView gridview;
private File imgFile;
private String path;
private ArrayList<File> List_File;
private static final int imageCode = 100;
private Context context;
SharedPreferences preference;
SharedPreferences.Editor edit;




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

    btPhoto = (Button) findViewById(R.id.btPhoto);
    btSave = (Button) findViewById(R.id.bt_save);
    gridview = (GridView) findViewById(R.id.gridview);
    preference = getPreferences(Context.MODE_PRIVATE);


    path = "/TongFolder/";
    context = this;
    List_File = new ArrayList<File>();
    File imgDir = new File(Environment.getExternalStorageDirectory()+path);
    imgDir.mkdirs();
    boolean check = imgDir.isDirectory();
    if(check == true){
    btPhoto.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            capture();

        }
    });
    }else{
        System.out.println("not create");
    }
 }


public void capture(){
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    imgFile = new File(Environment.getExternalStorageDirectory()+path, 
            "img_"+System.currentTimeMillis()+".jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imgFile));
    startActivityForResult(intent, imageCode);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data){

    if(requestCode == imageCode && resultCode == RESULT_OK){

        //add path to arrayList
        List_File.add(imgFile);
        for (File file : List_File) {
            String showPath = file.getPath();
            System.out.println(showPath);
        }

        gridview.setAdapter(new gridViewAdapter(context, List_File));

    }

}

public void onPause(){
    super.onPause();

    // save data to preference

    int size = gridview.getChildCount();
    System.out.println("size of gridview "+size);

        for(int i = 0; i < size; i++){
            ViewGroup child_grid = (ViewGroup) gridview.getChildAt(i);

                //intialize

                EditText edit_num = new EditText(getApplicationContext());
                EditText edit_info = new EditText(getApplicationContext());

                //get editText in child_gridview
                edit_num = (EditText) child_grid.getChildAt(1);
                edit_info = (EditText) child_grid.getChildAt(2);

                String num = edit_num.getText().toString();
                String info = edit_info.getText().toString();

                System.out.println("data in position "+i+" is "+num+"and"+info);

        }   


}

@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;
}
<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>
这是我的主要布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <GridView
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:verticalSpacing="10dp"
        android:numColumns="2" >
    </GridView>

</LinearLayout>

<Button
    android:id="@+id/btPhoto"
    android:layout_width="fill_parent"
    android:layout_marginTop="10dp"
    android:layout_height="wrap_content"
    android:text="photo" />

<Button
    android:id="@+id/bt_save"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:text="save" />
<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>
这是我的gridview\u项目布局

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>

谢谢

您的编辑文本有ID。您可以通过它们找到视图

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>
//get editText in child_gridview
edit_num = (EditText) child_grid.findViewById(R.id.editText_num);
edit_info = (EditText) child_grid.findViewById(R.id.editText_info);
使用
findViewById()

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>
edit_num=(EditText)child_grid.findViewById(R.id.EditText_num)

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>

请在
GridView
中发布每个单元格的布局文件……只需尝试使用
View childview=GridView.getChildAt(i)
不强制转换为ViewGroup您正试图将
线性布局
强制转换为
Edittext
,这就是引发异常的原因。发布相关的XML文件如何将view\u group强制转换为Edittext。因为我想获取Edittext中的值以使用SharedReference保存数据
<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" >

    <EditText
        android:id="@+id/editText_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="No." >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:hint="Explain about this picture" />

</LinearLayout>