当前位置: 首页 > 面试题库 >

无法开始新的活动

韩寒
2023-03-14
问题内容

美好的一天,我尝试从另一个开始新的活动。但是它总是崩溃。这是我的代码。这是ListView上的事件。

list.setOnItemClickListener(new OnItemClickListener(){
            public void onItemClick(AdapterView<?> parent, View view, int position, long id){
                Student selected = (Student)list.getItemAtPosition(position);
                String selectedTitle = selected.FirstName;  //ideally this would probably be done with accessors
                int selectedId = selected.studentId;
                String selectedDescription = selected.LastName;

               Intent i = new Intent(view.getContext(), StudentInfoActivity.class);
               i.putExtra("studentId", selectedId);
               try{
                   startActivity(i);
               }catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });

向清单清单添加了活动

<activity
            android:name=".StudentInfoActivity"
            android:label="@string/app_name" >
        </activity>

错误消息是

06-15 17:17:00.471: E/AndroidRuntime(602): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.marat.mutw/com.marat.mutw.StudentInfoActivity}: java.lang.NullPointerException: uriString

所有以前的活动,我添加的活动都很好…

StudentInfoActivity

public class StudentInfoActivity extends Activity {

    ImageView image;
    TextView firstLastName;
    TextView studentInfo;
    TextView addInfo;
    Student std;

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

        image = (ImageView)findViewById(R.id.avatar);
        firstLastName = (TextView)findViewById(R.id.firstNameLastName);
        studentInfo = (TextView)findViewById(R.id.studentinfo);
        addInfo = (TextView)findViewById(R.id.description);

        int studentId = getIntent().getExtras().getInt("studentId");
        JSONHandler handler = new JSONHandler(this.getApplicationContext());
        std = new Student();
        std = handler.GetStudentInfo(studentId);
        image.setImageURI(Uri.parse(std.imagePath));
        firstLastName.setText(std.FirstName+ "  "+std.LastName);




    }
    public void onClickApply(View view){

    }

}

问题答案:

代替

Intent i = new Intent(view.getContext(), StudentInfoActivity.class);

改成

Create static object of that activity

例如,活动actOne = null;

public static actOne a ;
a = this;

Intent i = new Intent(a, StudentInfoActivity.class);


 类似资料:
  • 公共类HttpHelper扩展AsyncTask } 在这段代码中,我通过AsyncTask从服务器读取数据,结果应该出现在新的UI中。这意味着我想从onPostExecute()开始新的活动。

  • 当使用Intent启动一个新活动时,活动顶部的栏是否会自动提供后退按钮?我假设它是这样工作的,但没有看到它。如果它没有自动出现,需要什么来使它出现?

  • 编辑...然而,我可以愉快地使用Monkey启动。下面的命令工作正常。好像我在adb shell am call中命名活动课的方式有问题,但我找不到。 谁能告诉我这个活动怎么叫?

  • 假设用户启动应用程序,启动ActivityOne。接下来,用户按下按钮启动Activity2,然后Activity2出现在屏幕上。 列出自应用程序启动以来在ActivityOne和ActivityTwo上调用的活动生命周期方法,按它们发生的顺序排列

  • 目前,我正在使用电子邮件确认的用户注册表单。 我已经设法启动我的应用程序使用链接在电子邮件,但我不知道如何获得链接的用户点击启动我的应用程序。

  • 我在做计算器(顺便说一句,我是个初学者)。我几乎完成了它,直到我需要格式化我的电脑,并且在第一次重新打开Android Studio之后,它才打开,但现在它没有打开,并且显示了这个例外: 失败:生成失败,出现异常。 哪里出了问题: 无法打开a4fwtlbt6cgvdv2n0389t2u6w的cp\U初始化重新映射类缓存(C:\Users\tambe.gradle\caches\6.1.1\scri