如何在按下按钮时添加到文本视图
How to Add to a textview when a button is pressed
我知道之前有人问过这个问题,但我无法完成这项工作,所以这是我目前所知道的
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'
我知道这可能是完全愚蠢的事情,但我是新手,需要帮助提前谢谢你。
这里需要取根元素。根据父布局,在 setContentView().
之后的 activity 中包含此行
RelativeLayout layout=(RelativeLayout)findViewById(R.id.yourLayoutId);// If its some other layout change "RelativeLayout" to your opted layout.
在按钮的onClick()方法中,添加如下内容。
layout.add(tv);
根据您的 logcat。
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'
我建议您在 MainActivity
中添加 Click(View v)
public void Click(View v)
{
}
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
调用此方法
或许可以考虑在 xml 文件中为按钮使用 android:onClick="example_method"
属性。然后在 class 中创建适当的方法。 public void example_method(View v) {}
然后将您在 onClick 函数中的代码放入新函数中。它比使用监听器更容易。
好的,所以你们所有人都帮助我完全摆脱了那些对于我想要做的事情来说太复杂的代码。在接受了一些建议和一些研究后,我想到了这个
public void AddOne(View v) {
TextView tv= (TextView) findViewById(R.id.Counter);
i=i+1;
tv.setText(""+i);
}
如你所见,比我之前的简单多了,这个很有效,谢谢大家
我知道之前有人问过这个问题,但我无法完成这项工作,所以这是我目前所知道的
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'
我知道这可能是完全愚蠢的事情,但我是新手,需要帮助提前谢谢你。
这里需要取根元素。根据父布局,在 setContentView().
之后的 activity 中包含此行RelativeLayout layout=(RelativeLayout)findViewById(R.id.yourLayoutId);// If its some other layout change "RelativeLayout" to your opted layout.
在按钮的onClick()方法中,添加如下内容。
layout.add(tv);
根据您的 logcat。
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'
我建议您在 MainActivity
Click(View v)
public void Click(View v)
{
}
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
调用此方法或许可以考虑在 xml 文件中为按钮使用 android:onClick="example_method"
属性。然后在 class 中创建适当的方法。 public void example_method(View v) {}
然后将您在 onClick 函数中的代码放入新函数中。它比使用监听器更容易。
好的,所以你们所有人都帮助我完全摆脱了那些对于我想要做的事情来说太复杂的代码。在接受了一些建议和一些研究后,我想到了这个
public void AddOne(View v) {
TextView tv= (TextView) findViewById(R.id.Counter);
i=i+1;
tv.setText(""+i);
}
如你所见,比我之前的简单多了,这个很有效,谢谢大家