0

내 문제를 제발 도와주세요. EditText Android에 표시 할 GridView의 이미지 소스 이름을 가져옵니다. 이미지 뷰를 클릭하면 EditText 안드로이드에 이미지 이름을 보여줍니다. 이미지 이름 앞에 이미 존재하는 GridView가 아닌 ​​리소스의 이름을 추출합니다.EditText에 표시 할 GridView의 이미지 소스 이름을 가져 오기

이 뷰 이미지 ilustration입니다 :

Ilustration Image

grid_view :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 


<GridView 
android:id="@+id/grid_view" 
android:layout_width="fill_parent" 
android:layout_height="368dp" 
android:columnWidth="90dp" 
android:gravity="center" 
android:horizontalSpacing="10dp" 
android:numColumns="auto_fit" 
android:stretchMode="columnWidth" 
android:verticalSpacing="10dp"/> 


<EditText 
android:id="@+id/editText1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:ems="10" 
android:inputType="text" /> 

</LinearLayout> 

strings.xml의

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">Tes Buta Warna</string> 
    <string name="action_settings">Settings</string> 
    <string name="hello_world">Hello world!</string> 
    <string name="inputdata">INPUT DATA</string> 
    <string name="test">TEST</string> 

<string-array 
    name="string_array_name"> 
    <item>Edwin</item> 
    <item>Yulius</item> 
    <item>Natan</item> 
    <item>Ria</item> 
    </string-array> 

</resources> 

ImageAdapter.Java

01,234,553 56,722,

AndroidGridLayout.java

package com.tes.butawarna; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.EditText; 
import android.widget.GridView; 

public class AndroidGridLayoutActivity extends Activity { 
String[] nama; 
EditText namagambar; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
namagambar=(EditText)findViewById(R.id.editText1); 

setContentView(R.layout.grid_layout); 

GridView gridView = (GridView) findViewById(R.id.grid_view); 
gridView.setAdapter(new ImageAdapter(this)); 

gridView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View v, 
      int position, long id) { 

     // Sending image id to FullScreenActivity 
     Intent i = new Intent(getApplicationContext(), Training.class); 
     // passing array index 
     i.putExtra("id", position); 

     startActivity(i); 
    } 
}); 
} 
+0

은'adapter'와'onItemClick'을 설정하기 전에'arraylist'를 채우는 방법에 대한 몇 가지 코드를 보여줍니다. – kId

+0

이미 내 코드를 업데이트합니다. 수정 해주세요. :) –

+0

나는 시간이되면 그것을 할 것이다 :) – kId

답변

0

당신은 당신의 드로어 블의 같은 이름을 가진 문자열 배열을 정의 할 필요가있다.

/res/values/string.xml이 코드

String[] names = getResource().getStringArray(R.array.string_array_name); 

// you must implement this class 
YourAdapter adapter = new YourAdapter(names, /* and some params */); 
youGridView.setAdapter(adapter); 

YouAdapter.java (확장 android.widget.ArrayAdapter)에서

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array 
    name="string_array_name"> 
    <item>Edwin</item> 
    <item>Yulius</item> 
    <item>Natan</item> 
    <item>Ria</item> 
    </string-array> 
</resources> 

@override 
public View getView(int position, View convertView, ViewGroup parent) { 

    // you must inflate gridview' child layout 
    View view = layoutInflater.inflate(...); 
    ImageView imageView = (ImageView) view.findViewById(...); 
    TextView imageView = (TextView) view.findViewById(...); 

    // ... 

    String name = getItem(); 
    int id = getIdentifier(name, "drawable", getApplicationInfo().packageName); 

    imageView.setImageResource(id); 
    textView.setText(name); 
} 

이 아니라

모든 이미지가 리소스 디렉토리에있을 때 작동합니다.

+0

정말 고맙습니다.하지만이 샘플 안드로이드 소스 코드가 있습니까? –

+0

코드에서 imageView를 사용하지만 imview가 아닌 ​​Gridview가 필요합니다. –

+0

당신은 gridview의 어댑터에 이름을 전달하고 ArrayAdapter # getView()에서 setImageResource()를 호출 할 수 있습니다. –