[英]Cant get an int value from on class to another class : android studio
我對 android 有點陌生。 我想從 class MainPage
獲取一個 int 值id
(動態生成的按鈕的 id)到 class Note
單擊按鈕時。 但是在Note
class 中id
的值總是變為零。
這是總結代碼:
主頁 class:
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));
}
});
}
}
}
注釋 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();
}
在小吃店消息中, id
始終為零。
您需要將 id 添加到用於啟動 Note 活動的 Intent。 您可以通過使用 Intent.putExtra(...) 並在 Note 中通過 getIntent().getIntExtra(...) 檢索它
在這里,我在您的代碼中實現了@Riccully Answer。
主頁.java
preview_text.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//getting id of the clicked button
id = v.getId();
Intent intent = new Intent(MainPage.this, Note.class);
intent.putExtra("id_value", id);
startActivity(intent);
}
});
注.java
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.note);
int id = getIntent().getIntExtra("id_value", 0);
View parentLayout = findViewById(android.R.id.content);
Snackbar mySnackbar = Snackbar.make(parentLayout, Integer.toString(id), 10000);
mySnackbar.show();
}
我們可以通過意圖來做到這一點因為 Android 意圖是在活動、內容提供者、廣播接收器、服務等組件之間傳遞的消息。
在我們的例子中,我們可以將 v.getId() 發送到 Note.java,viaputExtra
intent.putExtra("view_id",v.getId());
並通過使用接收 Note.java 中的值
getIntent().getIntExtra("view_id", 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.