2013-02-01 96 views
0

問題是,我有一組4個edittext字段(數字)和一個表格佈局,其中結果顯示在2列中。表格佈局中的值通過使用所有edittext值的公式計算得出。當我在edittext字段中輸入值時,我想在表格中動態更新答案。可能嗎?如果是這樣,請用一段代碼示例來說明問題。動態更新表中的值android

而表格是在另一個活動。

編輯文本代碼

al_e.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      if((al<15)|(al>50)|al_e.getText().toString().length()==0){ 
       invalid=1; 
       //al_e.setText(null); 
       Toast.makeText(getApplicationContext(),"Please enter a valid input\nRange [15mm,50mm]", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

截圖畫面。

enter image description here

表佈局被設置爲tabhost的setcontent。


爲tabhost

private void addTab(String label, String tag, Drawable drawable, Intent intent) { 
    TabHost.TabSpec spec = mTabHost.newTabSpec(tag); 
    spec.setIndicator(createTabIndicator(label, drawable)); 
    spec.setContent(intent); 
    intent.putExtra("AL", al); 
    intent.putExtra("K1", k1); 
    intent.putExtra("K2", k2); 
    intent.putExtra("ALC", al_const); 
    intent.putExtra("DR", dr); 
    intent.putExtra("INVALID", invalid); 
    mTabHost.addTab(spec); 
} 

其實現了tabhost活性定製addtab方法

mTabHost=(TabHost) findViewById(android.R.id.tabhost); 
    mTabHost.setup(getLocalActivityManager()); 
    addTab("SRK/T", TAG_1, createTabDrawable(R.drawable.ic_tab_eye_unselected), new Intent(Second.this, Srkt_x.class)); 
    addTab("SRK II", TAG_2, createTabDrawable(R.drawable.ic_tab_eye_unselected),new Intent(Second.this, Srk2_x.class)); 
    addTab("BINKHORST", TAG_3, createTabDrawable(R.drawable.ic_tab_eye_unselected), new Intent(Second.this, Binkhorst_x.class)); 
    addTab("HOLLADAY", TAG_4, createTabDrawable(R.drawable.ic_tab_eye_unselected), new Intent(Second.this, Holladay_x.class)); 

對TA BLE活性是srkt_x,srkt_2,holladay_x,binkhorst_x活性我設定爲tabhost

實際上我已經實現在一個標籤中的的EditText字段的內容,我已經設置的標籤如表佈局中的內容。所以當我更新edittext字段時,我想要更新edittext下的表格佈局字段。

PS:原諒壞圖像編輯

回答

1

您可以使用您的editext方法addTextChangedListener,因爲它是由用戶更新,以獲取其內容。看到該文檔here

示例代碼與EDITTEXT輸入來更新一個TextView:

佈局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="@string/hello_world" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 

活動:

public class MainActivity extends Activity { 

private TextView textView; 
private EditText editText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    editText= (EditText)findViewById(R.id.editText1); 
    textView= (TextView) findViewById(R.id.textView); 
    editText.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      textView.setText(s); //use the charsequence s which is the current user input 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

}

編輯 你的表是在另一個活動?你想要更新一個甚至在你使用editText監聽器時不會膨脹的表?我想你應該解釋更多,並在這裏發佈你的所有代碼。

編輯您在同一屏幕上使用了兩項活動,這在坦率地說相當罕見。現在您可以改爲使用類似活動的Fragments,並讓它們生活在同一個屏幕中。你可以用很多方法很容易地使用getActivity方法在它們之間進行通信。

+0

我已經做到了。即使表格沒有更新。你能提供一個樣本代碼 – human

+0

我想你應該先分享你的代碼,這樣我們可以看看它;) – psykhi

+0

如果textview是在另一個活動中怎麼辦? – human