2017-06-17 68 views
0

這是我在這裏的第一篇文章,我對編程非常陌生,我在android studio中開始了一個項目,但是我陷入了一些困難,因爲我缺乏的知識。使用gridlayout從列中獲取變量和數字的總和

我有三個不同的選項卡,我想對第二個選項進行計算。

所以我的問題是我如何計算gridlay內的列中的數據?

我的組件樹是這個樣子的TAB2:

的RelativeLayout>滾動視圖>網格佈局。

我在第2列和第3列插入了幾個textedits,我的目標是根據它們的輸入進行計算,然後將它們作爲結果插入到選項卡底部。

第2列僅包含數字,第3列包含變量。

我想使用戶在第三列等於數字輸入變量,例如A = 20 B = 17.5等

所以當其計算其自動改變可變到 相等數目。

我該怎麼做?

TAB2 java類:

package com.example.minmerit; 

/** 
* Created by lukin on 2017-06-14. 
*/ 

import android.app.Activity; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 


public class Tab2Betyg extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.tab2betyg, container, false); 
     return rootView; 

    } 
} 

TAB2佈局的xml:

<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="450dp" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.minmerit.MainActivity$PlaceholderFragment"> 


    <TextView 
     android:id="@+id/textview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <ScrollView 
     android:id="@+id/scrollView" 
     android:layout_width="match_parent" 
     android:layout_height="600dp" 
     android:layout_below="@id/textview"> 


     <GridLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <EditText 
       android:id="@+id/POÄNG" 
       android:layout_width="67dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_row="1" 
       android:ems="10" 
       android:fontFamily="monospace" 
       android:inputType="number" 
       android:text="100" 
       android:textAlignment="center" 
       android:textColor="@android:color/black" /> 

回答

0

首先,給你的EditTexts一些適當的ID,像

<EditText    
android:id="@+id/number_1" 
... 

然後在如。 onViewCreated使changeListeners:

EditText number_1 = (EditText) findViewById(R.id.number_1); 
number_1.addTextChangedListener(changeListener); 
// change listeners for other fields 

TextWatcher changeListener = new TextWatcher() { 

    @Override 
    public void afterTextChanged(Editable s) {} 

    @Override  
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    @Override  
    public void onTextChanged(CharSequence s, int start, 
    int before, int count) { 
     int a = Integer.parseInt(s); 
     // do something with "a" 
    } 
    }); 
+0

首先它不能化解方法findViewById和changeListeners 我如何獲得科拉姆2和3的網格佈局的總和? –

+0

GridLayout僅用於內部視圖的視覺排列。要總結「列」(或者確切地說:列中的EditTexts的總和值),你必須給它們ID。更何況,GridLayout缺少一些屬性,比如columnCount。看看這裏,也許這將有助於:http://www.techotopia.com/index.php/Working_with_the_Android_GridLayout_in_XML_Layout_Resources 請看看這個TableLayout,也許這對你會更好:https://developer.android.com/guide /topics/ui/layout/grid.html – thorin86

+0

好吧,這解釋了很多哈哈,ive終於設法配置gridlayout,所以我現在不太樂意嘗試改變它。 爲什麼我需要columncount?我已經插入了layoutrow/layoutcolumn,如果這就是你的意思。 我一直在尋找一些時間和(告訴我,如果我錯了)能夠做我想做的最簡單的方法是創建一個SQLiteDatabase。 我已經根據它們所在的列將編輯文本設置了正確的ID。 謝謝! –