2012-12-05 3 views
0

"findViewById"에 문제가 있으며 회선간에 발생합니다. 나는 그것이 잘 작동 다른 선을 배치하면내 onClick 함수에서 findViewById를 올바르게 설정하는 방법

new AlertDialog.Builder(DetailShareHoldingActivity.this).setTitle("Köp " + Portfolio.getPortfolio().getShareHolding(positionList).getName() + " Aktier").setView(addView).setPositiveButton("Köp", new DialogInterface.OnClickListener() { 

과 라인

public void onClick(DialogInterface dialog, int whichButton) { 

, 문제는 내가 그것을 가지고 어디 정확하게 라인을 가지고해야한다는 것입니다, 그래서 난 이유를 모르겠어 그 불평? 여기 내 OnclickListener입니다

buyButton = (Button)findViewById(R.id.buyButton); 
    buyButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View view) { 
     EditText tempEditText;  
     final View addView = getLayoutInflater().inflate(R.layout.shop_exsisting_share, null); 
     new AlertDialog.Builder(DetailShareHoldingActivity.this).setTitle("Köp " + Portfolio.getPortfolio().getShareHolding(positionList).getName() + " Aktier").setView(addView).setPositiveButton("Köp", new DialogInterface.OnClickListener() { 
      tempEditText = (EditText)findViewById(R.id.nrOfSharesInPortfolioEdit);//Complains on findViewById "Return type for the method is missing" and I have to have the code exactly here so that it is visible when the dialog is created and not when the button is pressed. 
      tempEditText= (EditText) findViewById(R.id.nrOfSharesInPortfolioEdit); 
      tempEditText.setText(Portfolio.getPortfolio().getShareHolding(positionList).getNrOfSharesInPortfolio()); 
      System.out.println(Portfolio.getPortfolio().getShareHolding(positionList).getNrOfSharesInPortfolio()); 
      tempEditText= (EditText) findViewById(R.id.currentCourseEdit); 
      tempEditText.setText(Double.toString(Portfolio.getPortfolio().getShareHolding(positionList).getCurrentRate())); 

      public void onClick(DialogInterface dialog, int whichButton) { 
       System.out.println("Button pressed köp "); 
      } 
     }).setNegativeButton("Avbryt", null).show(); 
     } 
    }); 
+1

logcat은 무엇이라고 말합니까? –

답변

2

예, 물론 문제가 있습니다. 클래스 정의 내에서 이미 선언 된 변수를 정의하려고합니다 ... 허용되지 않습니다.

귀하의 의견에 "코드를 정확하게 입력해야만 대화 상자를 만들 때 볼 수 있고 버튼을 누르지 않을 때 볼 수 있습니다." ". 이것은 아무 의미가 없습니다; 실제 방법으로 코드를 작성해야합니다.

정의를 클래스 정의 외부에서 메소드로 이동하십시오.

+1

'findViewById()'가 모두'addView.findViewById()'일까요? –

+0

@RaghavSood 그래, 고정. 감사. – Eric

관련 문제