java - 变量的值不显示在其他类中

标签 java android variables

我在 Eclipse 中编写了一个 Android 程序,但遇到了问题。我在这个类上向艺术家展示。在 onClick 方法中,我想发送单击的列表项的“值”。

...public class ArtistActivity extends ListActivity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);

    String[] artists = getResources().getStringArray(R.array.artists_array);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, artists));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
            {                   
                StringActivity sA = new StringActivity();
                sA.setArtist(((TextView) v).getText().toString());
                String asd = sA.getArtist();
                //Toast.makeText(getApplicationContext(), asd/*((TextView) v).getText()*/, Toast.LENGTH_SHORT).show();
                Intent i = new Intent().setClass(getApplicationContext(), AlbumActivity.class);
                startActivity(i);
            }
    });
}}

在 onClick 内部,当我使用 Toast 执行此操作时,它会显示所选项目,但在其他类中则不会。这是我存储值的代码:

public class StringActivity {
private String artist="";

public String getArtist() {
    return(artist);
}

public void setArtist(String artist) {
    this.artist=artist;
}

public String toString() {
    return(getArtist());
}}

这是另一个应该显示值的类:

public class AlbumActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    StringActivity sA = new StringActivity();

    String asd = sA.getArtist();
    TextView textview = new TextView(this);
    textview.setText("Hello " + asd + " World!");
    setContentView(textview);
}}

hello world之所以存在只是因为看到textview没有任何问题。也许问题是它不刷新(它从程序启动时就保持不变 - 因为当我在 StringActivity 类中为艺术家字符串给出一个值时,它就会显示,但是当我单击一个项目时,它会保持相同)还是还有其他问题? 谢谢!

最佳答案

您正在创建 StringActivity 的新实例,然后使用 getArtist() 获取值。它返回空字符串,因为该实例是本地实例并且尚未设置为其他任何内容。

不幸的是我没有做过任何Android开发所以我不知道你应该如何传递数据。也许可以通过作为参数传递的 Bundle 来完成,或者也许还有其他方法。我想如果你搜索 Android 文档和示例应该很容易找到。

关于java - 变量的值不显示在其他类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636887/

相关文章:

java - LeanFT 打开浏览器窗口并导航

java - 吝啬的链接结构和节点?

android - Firebase 消息传递错误(仅限 Android)- 新推送通知的致命异常

java - 使用两个不同 while 循环中的变量

java - 制作 JPA 实体的保护性副本

php - GD/Imagick 不保存我的图像

java - Android 中如何将 ASCII 字符转换为十进制数字?

java - 错误: variable might not have been initialised in my CellPhoneBill program

javascript - 有没有办法检查JavaScript中的多个变量是否都相等?

java - 为 Struts 编写 Junit 测试用例