分数不起作用

时间:2014-11-05 13:47:15

标签: android textview add

这是我的代码

    //declare a boolean variable for score
    private int optionTxtView = 0  ;
    
    //Search word 
//display score
    public void viewWord(View view)
    {
        score = (TextView)findViewById(R.id.yourScore);
    	tv2 = (TextView)findViewById(R.id.tv2);
        tv3 = (TextView)findViewById(R.id.tv3);
        searchWord = (ImageView) findViewById(R.id.searchWord);
        wordList = (ListView) findViewById(R.id.wordList);
        text = (AutoCompleteTextView) findViewById(R.id.textHere);
        wordList = (ListView) findViewById(R.id.wordList);
        
        
    	String s1= search.getText().toString();
        String s2= dbHelper.getData(s1);
      
        if(optionTxtView == 0){
        //display the score on textview1
    		tv2.setText(s2);
    		optionTxtView = 1;
    		
    		}
        else{
        //display the score on textview2    
            tv3.setText(s2);
    		optionTxtView = 0;
    		
       	}
        
        calculate();
      
    	ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
       	wordList.setAdapter(adapter);   	
    	adapter.add(text.getText().toString());
    	adapter.notifyDataSetChanged();
    	text.setText(null);
    	
    }
	
    
    private void calculate(){
        x = Integer.parseInt(tv2.getText().toString());
        y = Integer.parseInt(tv3.getText().toString());
	    z = x + y;
	    score.setText(Integer.toString(z));
    }

所以基本上我决定有3个textviews,score,tv2和tv3。所以第一个单词的第一个分数应该在tv2中,第二个分数应该在tv3中。这两个textview的总和应该是得分。 将文本放在textview上后,它将通过点击图像按钮从数据库中的textview中搜索单词。如果单词在数据库中,它会自动将单词放在listview中,同时它应该在两个textview上显示分数。

我真的需要帮助。我尝试了所有我能做的但是当textview tv2和tv3中的值/数字从属性设置时它永远不会添加EXCEPT。但是,只要数字/值来自数据库(因为它应该是它),它就永远不会添加!

任何帮助都将受到高度赞赏。请帮我处理我的密码。

onCreate Method

//TAKE NOTE: 16 IMAGEBUTTONS

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        dbHelper =new DBAdapter(this);
        search = (EditText) findViewById(R.id.textHere);
        words = (EditText) findViewById(R.id.edWord);
        scores = (EditText) findViewById(R.id.edScore);
        show_addWord = (ImageView) findViewById(R.id.show_addWord);
                
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
       	wordList.setAdapter(adapter);
        
        score = (TextView)findViewById(R.id.yourScore);
    	tv2 = (TextView)findViewById(R.id.tv2);
        tv3 = (TextView)findViewById(R.id.tv3);
        wordList = (ListView) findViewById(R.id.wordList);
        text = (AutoCompleteTextView) findViewById(R.id.textHere);
        wordList = (ListView) findViewById(R.id.wordList);
        blizzard = (ImageView) findViewById(R.id.blizzard);
        bomb = (ImageView) findViewById(R.id.bomb);
        searchWord = (ImageView) findViewById(R.id.searchWord);
        wordList = (ListView) findViewById(R.id.wordList); //this is til 16
        image1 = (ImageButton) findViewById(R.id.Button1);
		image16 = (ImageButton) findViewById(R.id.Button16);

		timer = (TextView) this.findViewById(R.id.timer);
		timer.setText("00:00:30");
		countDownTimer = new MyCountDownTimer(30000,1000);
		
		final AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.textHere);
		
		final ImageButton image1 = (ImageButton) findViewById(R.id.Button1); //this is til 16
		final ImageButton image16 = (ImageButton) findViewById(R.id.Button16);		
		
		 
		final int[] myPics = { R.drawable.a, R.drawable.b, R.drawable.c,
				R.drawable.e }; //this is til z
		
		//this is til 16
		int rando = (int)(Math.random()* 5);
		image1.setImageResource(myPics[rando]);
		image1.setId(myPics[rando]);
		

//this is from a -z		
		OnClickListener myCommoClickListner = new OnClickListener(){

			@Override
			public void onClick(View arg0) {
                Log.i(TAG,"arg0.getId() = " + arg0.getId());
                
                if(arg0.getId()==R.drawable.a){
                    Log.i(TAG,"arg0.getId()="+arg0.getId());
                    generatedString=generatedString+"a"; //[PLACEE RESPACTIVE CHARACTEER HERE]
                    text.setText(generatedString);
                    ((ImageButton) arg0).setImageResource(R.drawable.changea);
                    
                    	
        				if (!timeHasStarted) {
        					   countDownTimer.start();
        					   timeHasStarted = true;
        					   }
                																								else{
                																									if(arg0.getId()==R.drawable.z){
                							                							                                Log.i(TAG,"arg0.getId() = " + arg0.getId());
                							                							                                generatedString = generatedString+"z";
                							                							                                text.setText(generatedString);
                							                							                                ((ImageButton) arg0).setImageResource(R.drawable.changez);
                							                							                                
                							                							                                if (!timeHasStarted) {
                							                							             					   countDownTimer.start();
                							                							             					   timeHasStarted = true;
                							                							             					   }
                							                							                    		}
			}
			
		};

		
		image1.setOnClickListener(myCommoClickListner);
		image2.setOnClickListener(myCommoClickListner);
		image3.setOnClickListener(myCommoClickListner);
		image4.setOnClickListener(myCommoClickListner);
		image5.setOnClickListener(myCommoClickListner);
		image6.setOnClickListener(myCommoClickListner);
		image7.setOnClickListener(myCommoClickListner);
		image8.setOnClickListener(myCommoClickListner);
		image9.setOnClickListener(myCommoClickListner);
		image10.setOnClickListener(myCommoClickListner);
		image11.setOnClickListener(myCommoClickListner);
		image12.setOnClickListener(myCommoClickListner);
		image13.setOnClickListener(myCommoClickListner);
		image14.setOnClickListener(myCommoClickListner);
		image15.setOnClickListener(myCommoClickListner);
		image16.setOnClickListener(myCommoClickListner);
        
    }
    

LOGCAT enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

  

它永远不会在textview tv2和tv3中的值/数字时添加EXCEPT   是从属性

设置的

您需要将代码放在onClick按钮或监听的任何内容中,以便用户执行操作。之后,您可以获得textview's值并对其执行某些操作。

从代码的外观来看,我建议您移动 onCreate中的所有初始化

        //move this code to onCreate
        score = (TextView)findViewById(R.id.yourScore);
        tv2 = (TextView)findViewById(R.id.tv2);
        tv3 = (TextView)findViewById(R.id.tv3);
        searchWord = (ImageView) findViewById(R.id.searchWord);
        wordList = (ListView) findViewById(R.id.wordList);
        text = (AutoCompleteTextView) findViewById(R.id.textHere);
        wordList = (ListView) findViewById(R.id.wordList);

    //also move this
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
    wordList.setAdapter(adapter); 

之后,请致电viewWord()(或您喜欢的任何内容)中的onClick,例如:

 button.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        viewWord(v); //v is your button
    }
 });

更新

在查看logcat中的异常之后,似乎发生了错误,因为整数有一些whitespaces:“2”&lt; - 2之后的空格

尝试:

 x = Integer.parseInt(tv2.getText().toString().replaceAll("\\s",""));
y = Integer.parseInt(tv3.getText().toString().replaceAll("\\s",""));

我们的想法是删除所有空白,然后再将其解析为Integer

如果您有任何问题或者如果我想念您,请随意发表评论:)