2014-03-12 2 views
0

나는 sin, cos, tan과 같은 수학 함수 목록이 포함 된 listview이 있습니다. listview에 선택한 항목을 출력하고 EditText에 출력하려고합니다. 아래 코드를 사용하면 EditText에서 선택한 항목을 볼 수 있지만 괄호 안에 숫자를 추가하려면 대괄호 사이에 들어 가지 않습니다. 이 문제를 어떻게 해결해야합니까?Android : EditText

예 Round 함수를 선택하면 Round (2.3)와 같이 EditTextRound()이 표시되어야합니다.

그러나 브래킷 사이에 추가 숫자를 추가 할 수 없습니다. 이 Round() 2.3과 같이 대괄호 뒤에 나타납니다.

상담하십시오.

 eqString = new StringBuilder(); 
     ArrayList<String> mathsFuncArray = new ArrayList<String>(); 
       mathsFuncArray.add("round"); 
       mathsFuncArray.add("abs"); 
       mathsFuncArray.add("sqr"); 
       mathsFuncArray.add("sqrt"); 
       mathsFuncArray.add("log"); 
       mathsFuncArray.add("exp"); 
       mathsFuncArray.add("sin"); 
       mathsFuncArray.add("cos"); 
       mathsFuncArray.add("tan"); 
       mathsFuncArray.add("cotan"); 
       ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mathsFuncArray); 
       mathsFuncArray.setAdapter(adapter); 

       mathsFuncArray.setOnItemClickListener(new OnItemClickListener() { 
         public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) { 
         String selectedFromList =(String) (mathsFuncArray.getItemAtPosition(myItemInt)); 
         eqString.append(selectedFromList + ""()"); 


          updateEditText(); 
         }     
       }); 



    private void updateEditText() { 

       StringBuilder builder = new StringBuilder(); 

       builder.append(eqString.toString()); 

      EditText.setText(builder); 
      } 

답변

0

eqString.append("(" +selectedFromList + ")"); 
0

당신이 번호를 받고해야 다음과 같이

내 코드

은?

이 라인 :

eqString.append(selectedFromList + ""()"); 

이 같은 수정할 수 있습니다

민 문자열과 같이 설정 될 수 : 괄호 사이에 숫자 문자열을 둘 것

int num1 = 1; 
int num2 = 2; 
String numString = ""+num1+","+num2; 
eqString.append(selectedFromList + "("+numString+")"); 

.

편집

: 숫자 이후

가 버튼에서 오는이 작업을 수행 : // 글로벌 바르 :

int selNum1=0; 
int selNum2=0; 
int mod = 0; 
String selItem=""; 


/// set your arrylistener as before.... 

mathsFuncArray.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) { 
        selItem =(String) (mathsFuncArray.getItemAtPosition(myItemInt)); 
        eqString.append(selItem +"()"); 


         updateEditText(); 
        }     
      }); 

// set up the button, named Button number1; 

// you'll want to define click listeners for your number buttons. 
number1.setOnClickListener(new onClickListener({ 

@Override 
onClick(View v) { 
    setSelNums(1); 
    String display = selItem+"("+selNum1+","+selNum2+")"; 
    eqString.setLength(0); 
    eqString.append(display); 
    updateEditText(); 

});

public void setSelNums(int num) { 
    // you'll have to determine which numbers should be selNum1 or selNum2 and when (i.e. should it just always go "selNum1" is set first, followed by "selNum2" and then new entries just overwrite these...or something else? 
    if(mod%2 ==0) { 
     selNum1 = num; 
    } else { 
     selNum2 = num; 
    } 
    mod+=1; 
} 
+0

I 버튼의 행에서 숫자를 얻고에게 전화를 매번! 내 프로그램의 스크린 샷을 업로드하고 있습니다. 이것을 봐주세요. 고맙습니다. – user3306996

+0

코드도 게시하십시오. –

+0

코드에 대한 개정을했습니다. – user3306996

0
eqString.append(selectedFromList + ""()"); 

당신은() 사이에 아무것도 추가하지 않습니다.

eqString.append(selectedFromList + "(" + something + ")"); 

또한, 함수 updateEditText()는 모두 StringBuilder가 생성되고 있기 때문에 쓸모가 당신이 기능

+0

인터페이스에서 EditText에 번호를 추가하고 싶습니다. – user3306996