【问题标题】:Sending a View from a GridView to another Activity将视图从 GridView 发送到另一个 Activity
【发布时间】:2013-08-22 08:18:16
【问题描述】:

我的主要布局有一个 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 中隔离另一个 View?(例如 GridLayout 中的 textView)。

【问题讨论】:

    标签: android gridview android-intent view android-activity


    【解决方案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);
    

    在下一个Activity中写了喜欢

    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 功能的链接

    link

    另一种方法 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-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      相关资源
      最近更新 更多