所以我一直在寻找Android教程,帮助问题等等。我一直在努力学习问题或教程。
这是我的问题:
当我在可视化设计器中创建项目时,将在.xml中创建一段代码。 如何在以后的.java文件中获取该项目的ID?
如果点击一个按钮,如何添加回调?
这是我到目前为止所拥有的:
的.java
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void Button_click_callback() // Where to add the callback in the .xml?
{
// How to get button ID and change the text of it?
//Knowing this will help me A LOT!
}
}
.XML
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="79dp"
android:layout_marginTop="32dp"
android:text="Button" />
答案 0 :(得分:4)
当我在可视化设计器中创建一个项目时,将在.xml中创建一段代码。如何在以后的.java文件中获取该项目的ID?
步骤1:确保您已在设计器中为窗口小部件分配了一个ID(在上面的XML中,您会将其视为android:id="@+id/button1
)
步骤2:在Java中,您可以在某个适当的时间(例如,来自findViewById(R.id.button1)
,在您致电{{1}后的某个时间)调用Activity
来获取该窗口小部件的Java对象})。
当我们说点击一个按钮时,如何添加回调?
通常,有一种setter方法,例如setContentView()
,您可以在setOnClickListener()
检索到的Button
上调用。
在活动托管的小部件上点击事件的特定情况下,您还可以在XML中使用findViewById()
属性,该属性提供android:onClick
上将获得的方法的名称单击小部件时调用,而不是必须使用setter。
答案 1 :(得分:2)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something in response to button click
}
});
}
所有这些都在Android开发者网站上进行了详细记录。你应该为他们寻找这些基本的东西。
http://developer.android.com/guide/topics/ui/controls/button.html
答案 2 :(得分:1)
例如,在你的情况下你需要添加android:onClick =&#34; Button_click_callback&#34;在你的
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="79dp"
android:layout_marginTop="32dp"
android:text="Button"
android:onClick="Button_click_callback"/>
然后你可以使用Button_click_callback方法在你的Activity中回调
public void Button_click_callback()
{
}
如果你想以编程方式回调java, 首先,您使用findViewById获取视图,然后可以将click侦听器添加到该视图
答案 3 :(得分:0)
您需要使用onClickListener并覆盖onClick方法。
btn.setOnClickListener.(new View.OnClickListener(){
@Override
public void onClick(View v) {
//TO DO
}
});
OnClickListener是一个接口。这就是为什么你需要覆盖OnClick方法。
答案 4 :(得分:0)
//in oncreate method of activity
//take button id like that
Button button1 = (Button)findViewById(R.id.button1);
//then implement on click listener for performing action on button
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something in response to button click
}
});
}
//you can also implements onclicklistener in activity.its interface;
public class MainActivity extends Activity implements View.OnClickListener
//then generate method
public void onClick(View view) {
}
答案 5 :(得分:0)
public class MainActivity extends Activity {
private Button button1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void Button_click_callback() {
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something in response to button click
Log.e("click", "-------------button click");
}
});
}
}
答案 6 :(得分:0)
这两个代码段是相等的,只是以两种不同的方式实现。
代码实现
Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myFancyMethod(v);
}
});
// some more code
public void myFancyMethod(View v) {
// does something very interesting
}
上面是OnClickListener
的代码实现。这就是XML实现。
XML实现
<?xml version="1.0" encoding="utf-8"?>
<!-- layout elements -->
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="myFancyMethod" />
答案 7 :(得分:0)
1)首先查看您的XML文件,在代码中显示 android:id =“ @ + id / button1。
您可以使用自己的名称对其进行编辑。尽管GUI出现在设计的右侧,您也可以进行同样的更改。
您可以使用 findViewById(R.id.your id name); 函数获取ID。
例如: 我的按钮ID是 btn1 。在我的代码中,我可以通过获取按钮的ID来使用该按钮,如下所示:
Button btn1=findViewById(R.id.btn1);
2)您可以在创建完之前创建的Button之后进行回调,如下所示;
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Create your code
}
});
}
答案 8 :(得分:-1)
对于回叫 - Android组件需要在呼叫设备中注册。组件的id必须在xmls中是唯一的。 使用唯一ID可以动态更改组件,也可以使用回调。