0

Хорошо, поэтому я некоторое время пытаюсь понять это, просматривая сообщения, но до сих пор не нашел ничего жизнеспособного.Получите данные таблицы строк в ContextMenu

Это часть моего кода для таблицы:

TableLayout flightInfoTable = (TableLayout) findViewById(R.id.flightInfoTable); 
    flightInfoTable.setStretchAllColumns(true); 
    flightInfoTable.setShrinkAllColumns(true); 

for (int i = 16; i < flightInfoArrayLenght - 1; i++) { 

TableRow rowFlightInfo = new TableRow(this); 
     rowFlightInfo.setGravity(Gravity.CENTER); 
     rowFlightInfo.setPadding(5, 10, 5, 10); 
     TableRow.LayoutParams params = new TableRow.LayoutParams(); 
     params.width = -2; 
     rowFlightInfo.setLongClickable(true); 
     registerForContextMenu(rowFlightInfo); 

TextView tvTerminal = new TextView(this); 
     tvTerminal.setGravity(Gravity.CENTER); 
     tvTerminal.setText(flightInfoArray[i][6]); 
     rowFlightInfo.addView(tvTerminal, params); 

etc.. etc.. 

flightInfoTable.addView(rowFlightInfo); 

    } 

и контекстного меню:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getMenuInflater(); 
     menu.setHeaderTitle("....."); 
     inflater.inflate(R.menu.context_startmenu, menu); 
    } 
} 


@Override 
public boolean onContextItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 

case R.id.contextmenu_option1: 
     //stuff 
     return true; 
    default: 
     return super.onContextItemSelected(item); 
    } 
} 

Так в основном мне нужно получить значение в TextViews в выбранном (длинном щелкнул & контекстное меню открыто) строка таблицы.

Любые идеи и предложения?

Помощь очень ценится!

ответ

0

Я понял это на самом деле, так вот новый код для таблицы:

TableLayout flightInfoTable = (TableLayout) findViewById(R.id.flightInfoTable); 
flightInfoTable.setStretchAllColumns(true); 
flightInfoTable.setShrinkAllColumns(true); 

for (int i = 16; i < flightInfoArrayLenght - 1; i++) { 

TableRow rowFlightInfo = new TableRow(this); 
    rowFlightInfo.setGravity(Gravity.CENTER); 
    rowFlightInfo.setPadding(5, 10, 5, 10); 
    TableRow.LayoutParams params = new TableRow.LayoutParams(); 
    params.width = -2; 
    rowFlightInfo.setLongClickable(true); 
    //registerForContextMenu(rowFlightInfo); 

TextView tvTerminal = new TextView(this); 
    tvTerminal.setGravity(Gravity.CENTER); 
    tvTerminal.setText(flightInfoArray[i][6]); 
    rowFlightInfo.addView(tvTerminal, params); 

etc.. etc.. 

flightInfoTable.addView(rowFlightInfo); 

rowFlightInfo.setOnLongClickListener(new OnLongClickListener() { 

       @Override 
         public boolean onLongClick(View v) { 
          String flightNumber = tvFlight.getText().toString(); 
          flightNumber = flightNumber.replaceAll("\\s", ""); 
          setIntent(getIntent().putExtra("flightNumber", flightNumber)); 
          setIntent(getIntent().putExtra("flightInfo", "From " + tvFrom.getText() + " to Colombo")); 
          registerForContextMenu(v); 
          openContextMenu(v); 
          unregisterForContextMenu(v); 
          return true; 
         } 
         }); 

} 

& затем извлечь намерение из которого когда-либо вы хотите, конечно, просто обычный основной способ, чтобы получить какие-либо намерения:

Intent intent = getIntent(); 

    final String flightNumber = intent.getStringExtra("flightNumber"); 
    final String flightInfo = intent.getStringExtra("flightInfo"); 
Смежные вопросы