如何在按下按钮时添加到textview

时间:2015-01-28 04:41:58

标签: android crash textview

我知道以前曾经问过这个问题,但我不能做这个工作所以这就是我到目前为止所做的事情

class Click extends Activity {
int i=0;
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.activity_main);
    final TextView mTextView = (TextView) findViewById(R.id.Counter);
    mTextView.setText(""+i);

    final Button button = (Button) findViewById(R.id.AddOne);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
            TextView tv= (TextView) findViewById(R.id.Counter);

            i=i+1;
            mTextView.setText(Integer.toString(i));
        }
    });
}

每次我在模拟器中运行应用程序时都会崩溃

 java.lang.IllegalStateException: Could not find a method Click(View) in the activity class com.scouting.corbin.frc_201415_scouting.MainActivity for onClick handler on view class android.widget.Button with id 'AddOne'

我知道这可能是完全愚蠢的事情,但我是新手,需要帮助提前谢谢。

5 个答案:

答案 0 :(得分:1)

根据你的logcat。

  

java.lang.IllegalStateException:找不到方法点击(查看)   在活动类中   onClick的com.scouting.corbin.frc_201415_scouting.MainActivity   视图类android.widget.Button上的处理程序,其id为“AddOne”

我建议您在Click(View v)

中添加MainActivity
public void Click(View v)
{

} 

答案 1 :(得分:0)

您需要在此处获取根元素。根据父布局,在setContentView()之后的活动中包含此行。

RelativeLayout layout=(RelativeLayout)findViewById(R.id.yourLayoutId);// If its some other layout change "RelativeLayout" to your opted layout.

并在按钮的onClick()方法中添加以下内容。

layout.add(tv);

答案 2 :(得分:0)

Yopu想要在xml文件中添加一个Linearlayout 并为您的LinearLayout设置ID。

android:id="@+id/linearlayout"

将addTextView方法更改为以下

public void addTextView(String text){

LinearLayout layout=(LinearLayout)findViewById(R.id.linear);
TextView textView=new TextView(this);
textView.setText(text);
textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
layout.addView(textView);
}

并从你的Forloop中调用此方法

答案 3 :(得分:0)

也许考虑在xml文件中使用android:onClick="example_method"属性作为按钮。然后在类中创建适当的方法。 public void example_method(View v) {}然后将您在onClick函数中的代码放入新的代码中。这比使用听众容易。

答案 4 :(得分:0)

好的,所以你帮助我完全摆脱了那些过于复杂的代码。在拿了一些建议和一些研究后,我想出了这个

public void AddOne(View v) {


        TextView tv= (TextView) findViewById(R.id.Counter);


    i=i+1;
    tv.setText(""+i);
}

你可以看到比我以前简单得多的东西,这个工作谢谢大家