2012-02-16 65 views
0

我想弄清楚是否有方法來調用「submitValue」,在createNewSubmitButton();在onCreate();功能?我可以在onCreate()中調用另一個類的值嗎?

所以我想提交EditText中的值到一個TextView當你點擊Button提交值,所以我在那裏設置了一個onClick,但我不能在onCreate中調用submitValue?

見我的代碼示例,看看我的意思是:

package com.lars.myApp; 

import com.lars.myApp.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.LinearLayout; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class myAppActivity extends Activity { 

    int currentValue = 0; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final EditText valueOne = (EditText) findViewById(R.id.valueOne); 
     Button addOne = (Button) findViewById(R.id.addOne); 
     Button minusOne = (Button) findViewById(R.id.minusOne); 

     Button addButton = (Button) findViewById(R.id.add); 
     final TableLayout tableLayout1 = (TableLayout) findViewById(R.id.tableLayout1); 

     TextView textView = new TextView(this); 
     textView.setText("New text"); 

     addOne.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       addValue(); 
       valueOne.setText("" + currentValue); 
      } 
     }); 

     minusOne.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       minusValue(); 
       valueOne.setText("" + currentValue); 
      } 
     }); 

     addButton.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       tableLayout1.addView(createNewRow()); 
      } 
     }); 


     // I OUTCOMMENTED THIS, BECAUSE IT DIDN'T WORK, submitValue: "CANNOT BE RESOLVED" 

     /*submitValue.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       tableLayout1.addView(createNewTextView(newValue.getText().toString())); 
      } 

     });*/ 

    } 

    public TableRow createNewRow() { 
     final TableRow newRow = new TableRow(this); 
     newRow.addView(createNewContainer()); 
     return newRow; 
    } 

    public LinearLayout createNewContainer(){ 
     final LinearLayout newContainer = new LinearLayout(this); 
     newContainer.addView(createNewEditableText()); 
     newContainer.addView(createNewSubmitButton()); 
     return newContainer; 
    }  
    public EditText createNewEditableText() { 
     final EditText newValue = new EditText(this); 
     newValue.setHint("New"); 
     return newValue; 
    } 

    public Button createNewSubmitButton(){ 
     final Button submitValue = new Button(this); 
     submitValue.setText("Submit"); 
     return submitValue; 
    } 

    public TextView createNewTextView(String text) { 
     final TextView textView = new TextView(this); 
     textView.setText(text); 
     return textView; 
    } 

    public void addValue(){ 
     if(currentValue <= 999){ 
     currentValue = currentValue + 1; 
     } 
    } 

    public void minusValue(){ 
     if(currentValue >= 1){ 
      currentValue = currentValue - 1; 
     } 
    } 
} 

我希望有人能幫助我

+0

你是什麼意思「call submitValue」? submitValue是createNewSubmitButton方法中的局部變量。你當然可以調用createNewSubmitButton。除此之外,我對你想要做的事情感到非常困惑。你能澄清嗎? – LuxuryMode 2012-02-16 20:00:01

回答

1

事實上,你不能調用尚未在您的視圖中創建的財產以後。

你仍然有2個選項:

A - 在您的onCreate(...)創建,但稍後將其添加到您的視圖

B-創建它,添加它,但使用如下因素參數:

sibmitButton.setVisibility(View.GONE); 

這件事情很酷,你可以添加按鈕,玩它(編程),但用戶無法觸摸它!它甚至不會在你的視野中佔據任何「空間」!

並在需要時,只需使用:

sibmutButton.setVisibility(View.VISIBLE); 

難道你想要什麼?

+0

是啊...這實際上是我想要的... 我一直在想這一切都是錯的。 但現在它正在工作......謝謝! – 2012-02-17 19:17:33

相關問題