1

私はAndroid開発の初心者です。これは私のリスト画像コードです。画像に別のアクティビティを渡すことはありません。画像を別のアクティビティに渡さない理由。誰かがそれを修正できますか?

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

        LayoutInflater inflater = getLayoutInflater();

        View row = inflater.inflate(R.layout.row, parent, false);

        TextView textview = (TextView) row.findViewById(R.id.tvTop);
        ImageView imageview = (ImageView) row.findViewById(R.id.list_image);

        textview.setText(data_topText[position]);
        imageview.setImageResource(data_image[position]);

        row.setOnClickListener(new OnClickListener() {

            public void onClick(View row) {
                    TextView textview = (TextView) row.findViewById(R.id.tvTop);
                    ImageView imageview = (ImageView) row.findViewById(R.id.list_image);


                    String product = textview.getText().toString();
                    int images = imageview.getId();


                    Intent i = new Intent(getApplicationContext(),
                            SecondScreenActivity.class);

                    i.putExtra("name", product);
                    i.putExtra("zurag", images);
                    startActivity(i);
            }
        });

        return (row);

    }

SecondScreenActivity.javaは次のとおりです。

public class SecondScreenActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen2);

    TextView txtName = (TextView) findViewById(R.id.txtName);
    ImageView images = (ImageView) findViewById(R.id.image);

    Intent intent = getIntent();

    String name = intent.getStringExtra("name");
    int pic =intent.getIntExtra("zurag", 0);

    txtName.setText(name);
    images.setImageResource(pic);

}

}

4

3 に答える 3

3

行の setOnClickListener() の代わりに、ListView に setOnItemClickListener() を使用してみてください。

lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View row, int position, long id) {
                TextView textview = (TextView)row.findViewById(R.id.tvTop);
                    ImageView imageview = (ImageView) row.findViewById(R.id.list_image);


                    String product = textview.getText().toString();
                    int images = imageview.getId();


                    Intent i = new Intent(getApplicationContext(),
                            SecondScreenActivity.class);

                    i.putExtra("name", product);
                    i.putExtra("zurag", images);
                    startActivity(i);

            }

        });
于 2012-09-29T08:21:36.637 に答える
0

Resource を に動的に割り当てるときは、setTag() と getTag() を使用してみてくださいImageview

int images = getID(); // Will Not Return you Image Resource you set.

ImageResource を割り当てて Tag ID を設定してみると、2 番目のアクティビティで imageresource を取得するのに役立ちます。

imageView.setTag("any tag");
String imageTag =  (String) imageView.getTag(); // To retrieve

お役に立てれば。

于 2012-09-29T08:42:03.140 に答える
0

画像配列上の画像の位置を送信し、2 番目のアクティビティで取得するだけで十分です... 1 番目のアクティビティでは:

 i.putExtra("name", product);
 i.putExtra("pos", position);

2 番目のアクティビティ:

int pic =intent.getIntExtra("pos", 0);

// そして、images.setImageResource(data_image[pic]) を設定します。

重要: 2 番目のアクティビティでも画像配列 (つまり、data_image) を保持する必要があります。または、ビットマップの送信を試みることもできます...

于 2012-09-29T09:44:34.917 に答える