0

我的主要布局有一个 GridView。GridView 包含一些 GridLayouts,里面有一个 ImageView 和一个 TextView。我想要做的是,当我从 GridView 中选择一个 GridLayout 时,会打开一个新的 Activity,并在其布局上使用这个特定的 GridLayout。

我的想法是通过 Intent 将 GridLayout 的 id 传输到第二个 Activity。这是我到目前为止制作的代码。

//from MainActivity

public final static String USERDATA="com.example.myproject.MESSAGE";

protected void onCreate(Bundle savedInstanceState) {
.
.


 GridView gridview = (GridView) findViewById(R.id.gridView1);
adapter=new ArrayAdapter(this,R.layout.windows_button, R.id.textView1,names);
          gridview.setAdapter(adapter);     
    .
     gridview.setOnItemClickListener(new OnItemClickListener() {


    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                    int viewId=v.getId();
                    sendToLogin(viewId);
                }


            });
}

public void sendToLogin(int viewId){

     Intent intent = new Intent(this,LoginActivity.class);
     intent.putExtra(USERDATA, viewId);
     startActivity(intent);
}


//from second activity

View userdata;//The View that will receive the GridLayout
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);


        //recieving the intent and the information from the gridview list
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.USERDATA);
        userdata=(View)findViewById(R.id.loginView);


    }
  1. 我怎么能这样做?
  2. 如何从 GridLayout 中隔离另一个视图?(例如 GridLayout 中的 textView)。
4

1 回答 1

1

你试过这个吗

Intent i = new Intent(this, SecondActivity.class);
Bitmap b = img.getDrawingCache();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 50, bs);
i.putExtra("myImage", bs.toByteArray());
startActivity(i);

在下一个活动中写道

if(getIntent().hasExtra("myImage")) {
    ImageView image = new ImageView(this);
    Bitmap b = BitmapFactory.decodeByteArray(
        getIntent().getByteArrayExtra("myImage"),0,getIntent().getByteArrayExtra("myImage").length);        
    image.setImageBitmap(b);
}

首先检查以下指向 api 功能的链接

关联

另一种方法1)

first add listener like below
selection = (TextView) findViewById(R.id.selection);

        GridView gv = (GridView) findViewById(R.id.grid);

        ArrayAdapter<String> aa = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1, 
                items );

        gv.setAdapter(aa);
        gv.setOnItemClickListener(this);

2)在项目点击

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        selection.setText(items[position]);
    }
于 2013-08-22T08:31:58.183 回答