Java SetOnCLickListener问题
我的Java SetOnCLickListener问题,java,android,Java,Android,我的设置ClickListener有问题。我想不出我需要什么代码。我试图做的是,一旦在列表视图中单击该项,它就会打开一个新的活动。在我的代码中,列表视图位于MainActivity中。我想让它开启家庭作业活动。所以我的问题是,有谁能帮我弄清楚我需要投入什么才能让它正常工作,并打开homography.java?当它打开Homebook.java时,它会将列表视图中单击的项目显示为标题。那么体内什么都没有 MainActivity.class: public class VideoListTask
设置ClickListener有问题。我想不出我需要什么代码。我试图做的是,一旦在列表视图中单击该项,它就会打开一个新的活动。在我的代码中,列表视图位于MainActivity中。我想让它开启家庭作业活动。所以我的问题是,有谁能帮我弄清楚我需要投入什么才能让它正常工作,并打开homography.java?当它打开Homebook.java时,它会将列表视图中单击的项目显示为标题。那么体内什么都没有
MainActivity.class
:
public class VideoListTask extends AsyncTask<Void, Void, Void>{
ProgressDialog dialog;
protected void onPreExecute (Void result) {
dialog.getProgress();
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params)
{
HttpClient client = new DefaultHttpClient();
//HttpGet getRequest = new HttpGet(feedUrl);
Date now = new Date();
HttpGet getRequest = new HttpGet(canvasUrl + "courses? include[]=term&state=available");
getRequest.setHeader("Authorization","Bearer " + canvasApiKey); //uses your key to access your data
try
{
HttpResponse response = client.execute(getRequest);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if(statusCode != 200)
{
return null;
}
InputStream jsonStream = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(jsonStream));
StringBuilder builder = new StringBuilder();
String line;
while((line = reader.readLine())!=null)
{
builder.append(line);
}
String jsonData = builder.toString();
//JSONObject json = new JSONObject(jsonData);
//JSONObject data = json.getJSONObject("data");
//JSONArray items = data.getJSONArray("items");
JSONArray courses = new JSONArray(jsonData);
//for(int i =0; i<items.length(); i++)
//{
// JSONObject video = items.getJSONObject(i);
// videoArrayList.add(video.getString("title"));
//}
for(int i = 0; i<courses.length(); i++)
{
JSONObject course = courses.getJSONObject(i);
JSONObject term = course.getJSONObject("term");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date enddate = format.parse(term.getString("end_at"));
Date startdate = format.parse(term.getString("start_at"));
if (now.after(startdate) && now.before(enddate))
{
videoArrayList.add(course.getString("name"));
}
} catch (Exception e) {
//videoArrayList.add(course.getString("name"));//include if you want undated courses
}
}
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
THIS IS WHERE I NEED TO PUT THE ONCLICK LISTENER IN.
}
公共类VideoListTask扩展了AsyncTask{
进程对话;
受保护的void onPreExecute(void结果){
dialog.getProgress();
super.onPostExecute(结果);
}
@凌驾
受保护的Void doInBackground(Void…参数)
{
HttpClient=new DefaultHttpClient();
//HttpGet getRequest=新的HttpGet(feedUrl);
现在日期=新日期();
HttpGet getRequest=新的HttpGet(canvasUrl+“课程?包括[]=学期和状态=可用”);
getRequest.setHeader(“授权”、“承载者”+canvasApiKey);//使用密钥访问数据
尝试
{
HttpResponse response=client.execute(getRequest);
StatusLine StatusLine=response.getStatusLine();
int statusCode=statusLine.getStatusCode();
如果(状态代码!=200)
{
返回null;
}
InputStream jsonStream=response.getEntity().getContent();
BufferedReader=new BufferedReader(new InputStreamReader(jsonStream));
StringBuilder=新的StringBuilder();
弦线;
而((line=reader.readLine())!=null)
{
builder.append(行);
}
字符串jsonData=builder.toString();
//JSONObject json=新的JSONObject(jsonData);
//JSONObject data=json.getJSONObject(“数据”);
//JSONArray items=data.getJSONArray(“items”);
JSONArray课程=新JSONArray(jsonData);
//对于(int i=0;i,如果家庭作业.java是您的第二个活动,您可以用这种方式设置单击侦听器
主要活动
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
ListView myListView = (ListView) findViewById(R.id.myListView);
myListView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
startActivity(new Intent(MainActivity.this, Homework.class));
}
});
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
....
ListView myListView=(ListView)findViewById(R.id.myListView);
myListView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共单击(适配器视图适配器,视图v,内部位置,
长arg3)
{
开始活动(新的意图(MainActivity.this、家庭作业.class));
}
});
start.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
试一试{
Class-ourClass=Class.forName(“com.example.projname.homography”);
Intent-ourIntent=新的Intent(MainActivity.this,ourClass);
ourIntent.putExtra(“矩阵”,m);
星触觉(ourIntent);
}catch(classnotfounde异常){
e、 printStackTrace();
}
});
使用putExtra传递的数据将在Homeactivity中提供给您。java请转到我的答案:您可以尝试帮助我完成代码吗?您建议我个人做什么?家庭作业是一个单独的java文件。这仍然有效吗?我如何获取单击的listview项目的内容?您可以检索listview项目AdapterView对象使用getItemAtPosition()单击。例如,对于MyItemType item=(MyItemType)adapter.getItemAtPosition(position);main活动,我相信。更具体地说,在您选择选项的活动中。
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try{
Class<?> ourClass=Class.forName("com.example.projname.Homework");
Intent ourIntent= new Intent(MainActivity.this,ourClass);
ourIntent.putExtra("matrix", m);
startActivity(ourIntent);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
});