2013-07-04 28 views
0

我想測試如何在Android上更改dinamycally視圖,而無需啓動其他活動。Android:OnClickListener,OnTouchListener崩潰

因此,我編寫了這段代碼,每當我將OnTouchListener和OnClickListener一起實現時,它會崩潰,但如果我只使用其中一個,它就可以正常工作(儘管它沒有做我想做的事)。

public class Test extends Activity implements OnTouchListener, OnClickListener { 

ImageView image; 
Button ret; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.displaytest); 

    image = (ImageView) this.findViewById(R.id.image01); 
    ret = (Button) this.findViewById(R.id.ret); 

    image.setOnTouchListener(this); 
    ret.setOnClickListener(this); 
} 

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    int action = event.getAction(); 

    switch(action) 
    { 
    case MotionEvent.ACTION_DOWN: 
     setContentView(R.layout.returnd); 
     break; 
    } 

    return true; 
} 

@Override 
public void onClick(View v) { 

    setContentView(R.layout.displaytest); 
} 

}

基本上,我只是想顯示的圖片,當用戶觸摸它,改變視圖中顯示一個按鈕,讓你回到主視圖。

順便說一句,我是Android的新手,所以我認爲這應該是一個相當蹩腳的錯誤。幫助將不勝感激。謝謝

+1

請在LogCat中顯示錯誤的輸出。很難說出錯的地方 –

回答

0

請刪除onTouch & onCLick事件中的setContentView()方法。它導致問題。您無法在活動中多次設置內容視圖。你可以看到使用任何其他方法,如改變textVIew中的文本,改變顏色或改變圖像視圖中的圖像等動態變化。

0

我不認爲你可以多次調用setContentView這樣的。

您應該讓該按鈕在佈局中不可見,並且在圖片被觸摸時使其變得可見,而不是加載新的佈局。

0

沒有堆棧跟蹤(logcat)你不會得到任何質量的答案。

BTW:New layout = new Activity(or Fragment)。 NOT setContentView()

期間。