我对安卓还不太熟悉。我想得到一个int值 id
(动态生成的按钮的id)来自类 MainPage
进入课堂 Note
单击按钮时。但它的价值 id
总是在 Note
班级。
以下是总结代码:
主页类:
public class MainPage extends AppCompatActivity {
public int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int j=0; j<allnotes.size(); j++) {
//generating buutons
final Button preview_text = new Button(this);
preview_text.setId(j)
preview_text.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//getting id of the clicked button
id=v.getId();
startActivity(new Intent(MainPage.this, Note.class));
}
});
}
}
}
注解类:
public class Note extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note);
MainPage obj=new MainPage();
int id=obj.id
View parentLayout = findViewById(android.R.id.content);
Snackbar mySnackbar = Snackbar.make(parentLayout,Integer.toString(id) , 10000);
mySnackbar.show();
}
在snackbar消息中, id
总是零。
3条答案
按热度按时间eoigrqb61#
我们可以通过intent实现这一点,因为android intent是在活动、内容提供商、广播接收器、服务等组件之间传递的消息。
在本例中,我们可以通过viaputextra将v.getid()发送到note.java
并通过使用接收note.java中的值
4dc9hkyq2#
在这里,我在您的代码中实现了@riccully answer。
主页.java
注解.java
6rqinv9w3#
您需要将id添加到用于启动note活动的意图中。您可以使用intent.putextra(…)来实现这一点,并在note中通过getintent().getintextra(…)检索它