2012-11-30 49 views
1

我創建了佈局。我在那裏添加了查看:如何將數據從Activity類轉發到View?

<app.test.application.EObrazView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

例如,用戶正在點擊按鈕。活動正在執行適當的功能setOnClickListener。我想發送關於它的信息到View class app.test.application.EObrazView

如何做到這一點?如何在這些類之間共享信息?

編輯:

EObrazView view1; 
view1 = (EObrazView) findViewById(R.id.myView); 
[button on click listener] 
view1.newImage(wo); 

newImage();是在按下活動課中的按鈕時要使用的EObrazView中的功能。 不幸的是,有一個錯誤:java.lang.NullPoniterException

回答

2

假設視圖來自你,這似乎是這種情況。你必須在視圖類中創建方法。

然後分配視圖的ID在XML:

android:id="@+id/myId" 

,你會得到與

EObrazView view = (EObrazView)findViewById(R.id.myId); 

引用這一觀點的活性,可調用的方法。

+0

看編輯。此代碼不起作用 – Piotrek

2

更改您的佈局代碼是這樣的:

<app.test.application.EObrazView 
    android:id="@+id/myView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

然後調用setContentView後的你的OnCreateActivity你可以,如果你使用通過調用findViewById(R.id.myView).setOnClickListener()

得到這種觀點的引用一個OnClickListener,當onClick被調用時,您將被引用到被點擊的視圖,然後您可以調用您喜歡的任何(公共)函數。

如果我有一個活動多點擊美景,我喜歡我的活動實施OnClickListener,然後調用內部的OnCreate findViewById(R.id.someViewId).setOnClickListener(this)爲每點擊視圖,然後我用switch語句,像這樣:

@Override 
public void onClick(View someView) { 
    switch (someView.getId()){ 
     case someViewId: 
      //doing something such as call someView.someFunction() 
      break; 
     case someOtherViewId: 
      //do something else! 
      break; 
    } 
} 
相關問題