2014-04-09 94 views
0

下面調用適配器的新意圖是通過一個適配器如何從SetOnItemClickListener ListView中

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_online_users); 
    final ListView listview = (ListView) findViewById(R.id.listviewusers); 
    //onlineUsers.setAdapter() 

    //final ListView listview = (ListView) findViewById(R.id.listview); 

    Intent intent = getIntent(); 

    String username = intent.getStringExtra(connection.SERVER_ONLINE_USERS); 

    String[] values = username.split(","); 

    final ArrayList<String> list = new ArrayList<String>(); 
    for (int i = 0; i < values.length; ++i) { 
     list.add(values[i]); 
    } 
    final StableArrayAdapter adapter = new StableArrayAdapter(this, 
     android.R.layout.simple_list_item_1, list); 
    listview.setAdapter(adapter); 


    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, final View view, 
      int position, long id) { 
     final String item = (String) parent.getItemAtPosition(position); 

     // view.setAlpha(1); 

     } 


    }); 

    } 

我想要做的就是將被點擊的字符串項的列表視圖代碼列表視圖,啓動一個新的意圖和串項目傳遞給它,

類似於:

Intent i = new Intent(this, activity.class); 
sign.putExtra(KEY, value); 
startActivity(i); 

但是當我使用上述Intent代碼在我onItemClickListener()我收到一個錯誤。

"The Constructor Intent(New AdapterView.OnItemClickListener(){}, Class<activity>) is undefined" 

建議的方式來解決它是從意圖刪除參數,並有像這樣

Intent i = new Intent(); 
+1

的問題是,你還沒有告訴我們是什麼問題 – codeMagic

+0

當我點擊的東西listview,它將被保存在最終的String項目中,我想將此字符串添加到一個包中,並開始一個新的活動 – cdLegend

+0

所以在setOnItemClickListener()的onItemClick()內部替換你的意圖代碼有什麼問題? – ridoy

回答

2

我對這個問題感到困惑,因爲你似乎知道如何做到這一點。因此,讓我們把它一起

@Override 
    public void onItemClick(AdapterView<?> parent, final View view, 
     int position, long id) { 
    final String item = (String) parent.getItemAtPosition(position); 

    // view.setAlpha(1); 

    Intent i = new Intent(view.getContext(), activity.class); // get a valid context 
    i.putExtra("someKey", item); //I don't know where sign came from 
    startActivity(i); 

    } 

然後把它在你的ActivityonCreate()

Intent itent = getIntent(); 
String value = intent.getStringExtra("someKey"); 
+0

抱歉,如果我沒有明確說明問題,當我寫這個,我得到一個錯誤,建議的方式來解決它是刪除從意圖的意見,並有這樣的想法 意圖我=新的意圖(); 「構造函數的意圖(新的AdapterView.OnItemClickListener(){},類)未定義」 – cdLegend

+0

儘管我懷疑這一點,但從一開始,這些信息會非常有價值。再看看我的答案。您沒有使用有效的「上下文」 – codeMagic

+0

不客氣。沒問題,只要下次記住,如果你不告訴我們,我們通常不知道你遇到的問題。通常它可能有很多可能性。寫完之後,通讀這個問題,就好像你以前從未見過這樣的代碼......這應該有所幫助。 – codeMagic

相關問題