2014-12-03 65 views
0

我想,如果我点击'Leerlingenraad'的列表视图,他打开Leerlingenraad.xml类的Leerlingenraad类,如果我点击联系人,他打开类与contact.xml联系我已经找到这很多话题,但它不会工作。有人知道我的脚本中出了什么问题吗?请不要评价。Android listview onclicklistener活动

Myclass.java:

package com.example.myapp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem.*; 
import android.view.MenuItem; 
import android.view.MenuInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.*; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.HashMap; 
import android.text.Editable; 
import android.widget.AdapterView.OnItemClickListener; 
import android.text.TextWatcher; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.view.ViewGroup; 
import android.widget.Toast; 

public class Myclass extends Activity { 

// List view 
private ListView lv; 

// Listview Adapter 
ArrayAdapter<String> adapter; 

// Search EditText 
EditText inputSearch; 


// ArrayList for Listview 
ArrayList<HashMap<String, String>> onderneming; 


/** 
* Called when the activity is first created. 
*/ 

@Override 
public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 
setContentView(R.layout.myclass); 


String onderneming[] = {"Leerlingenraad", "Medezeggenschapsraad", "3", "4", "5", "6", "Contact"}; 

lv = (ListView) findViewById(R.id.list_view); 
inputSearch = (EditText) findViewById(R.id.inputSearch); 

// Adding items to listview 
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, onderneming); 
lv.setAdapter(adapter);  

/** 
* Enabling Search Filter 
* */ 
inputSearch.addTextChangedListener(new TextWatcher() { 

@Override 
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 

// When user changed the Text 
Ondernemerschap.this.adapter.getFilter().filter(cs); 

} 

@Override 
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
int arg3) { 
// TODO Auto-generated method stub 

} 

@Override 
public void afterTextChanged(Editable arg0) { 
} 
}); 

lv.setOnItemClickListener(new OnItemClickListener() { 

@Override 
public void onItemClick(AdapterView<?> parent, View view, 

final int position, long id) { 

String main = lv.getSelectedItem().toString(); 

} 
}); 
} 
private ListView getListView() { 
return null; 

} 
} 

myclass.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 

android:id="@+id/background" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/pallasrood" 
android:orientation="vertical" > 

<ImageView 

android:id="@+id/imageView1" 
android:layout_width="wrap_content" 
android:layout_height="100dp" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:src="@drawable/android" /> 

<EditText android:id="@+id/inputSearch" 

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_below="@+id/imageView1"android:hint="Zoek de onderneming.." 
android:inputType="textVisiblePassword"/> 

<ListView 

android:id="@+id/list_view" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" 
android:layout_alignParentBottom="true" 
android:layout_below="@+id/inputSearch" 
android:background="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent" > 

</ListView> 

</RelativeLayout> 

AndroidManifest.xml中

<activity android:name=".Leerlingenraad"  
android:label="Pallasapp"> 
</activity> 
+1

听起来你需要使用活动。为'Leerlingenraad'和'Contact'创建一个新的活动,并使用'Intent's和'startActivity()'来改变这些活动。 – RogueBaneling 2014-12-03 16:08:40

+0

你应该看看[这个](http://developer.android.com/training/index.html),这会帮助你很多。特别是[开始另一个活动](http://developer.android.com/training/basics/firstapp/starting-activity.html)一章。 – James 2014-12-03 16:14:03

+0

你可以粘贴你的列表视图屏幕截图,让我们明白你在问什么 – Psypher 2014-12-03 16:22:16

回答

0

我假设你已经有了详细的活动,我把它叫做OndernemingDetailActivity

在你的ListView活动:

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

      Intent in = new Intent(this, OndernemingDetailActivity.class); 
      //Send onderneming 
      in.putExtra("selected_onderneming", adapter.getItem(i)); 
      startActivity(in); 
     } 
    }); 

然后在您的详细信息视图,你会得到“selected_onderneming”从包像这样:

String selectedOnderneming; 
Bundle extras = intent.getExtras(); 
    if(extras != null) 
     onderneming = extras.getString("selected_onderneming"); // retrieve the selected onderneming 

这是为了让演员出最快捷的方式捆绑。检查出this发布一个更健壮和安全的方式来这样做。

然后,您可以显示您选择的'选择开始'的数据。我希望这回答了你的问题。

+0

是的请解释 – Anoniem 2014-12-03 18:22:11

+0

我会在15分钟内编辑我的答案,我很忙atm;) – James 2014-12-03 18:23:24

+0

好吧我会看到它 – Anoniem 2014-12-03 18:24:22

相关问题