2013-08-22 42 views
0

我的主佈局有一個GridView。 GridView包含一些帶有ImageView和TextView的GridLayouts。我想要做的是當我從GridView中選擇一個GridLayout時,一個新的Activity會在其佈局上打開這個特定的GridLayout。從GridView發送視圖到另一個活動

我的想法是將GridLayout的id通過Intent轉移到第二個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)。

回答

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功能

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]); 
    } 
相關問題