Определите, содержит ли массив значение [duplicate]

В основном реализует интерфейс для взаимодействия между Activity и фрагментом.

1) Основная активность

public class MainActivity extends Activity implements SendFragment.StartCommunication
{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public void setComm(String msg) {
// TODO Auto-generated method stub
DisplayFragment mDisplayFragment = (DisplayFragment)getFragmentManager().findFragmentById(R.id.fragment2);
if(mDisplayFragment != null && mDisplayFragment.isInLayout())
{
mDisplayFragment.setText(msg);
}
else
{
Toast.makeText(this, "Error Sending Message", Toast.LENGTH_SHORT).show();
}
}
}

2) фрагмент отправителя (фрагмент для активности)

public class SendFragment extends Fragment
{
StartCommunication mStartCommunicationListner;
String msg = "hi";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View mView = (View) inflater.inflate(R.layout.send_fragment, container);
final EditText mEditText = (EditText)mView.findViewById(R.id.editText1);
Button mButton = (Button) mView.findViewById(R.id.button1);
mButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
msg = mEditText.getText().toString();
sendMessage();
}
});
return mView;
}

interface StartCommunication
{
public void setComm(String msg);
}

@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
if(activity instanceof StartCommunication)
{
mStartCommunicationListner = (StartCommunication)activity;
}
else
throw new ClassCastException();

}

public void sendMessage()
{
mStartCommunicationListner.setComm(msg);
}

}

3) фрагмент приемника (Activity-to-fragment)

    public class DisplayFragment extends Fragment
{
View mView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
mView = (View) inflater.inflate(R.layout.display_frgmt_layout, container);
return mView;
}

void setText(String msg)
{
TextView mTextView = (TextView) mView.findViewById(R.id.textView1);
mTextView.setText(msg);
}

}

Я использовал эту ссылку для того же решения, надеюсь, кто-то найдет ее полезной. Очень простой и простой пример.

http://infobloggall.com/2014/06/22/communication-between-activity-and-fragments/

1275
задан zx8754 1 July 2015 в 11:39
поделиться

4 ответа

var contains = function(needle) {
    // Per spec, the way to identify NaN is that it is not equal to itself
    var findNaN = needle !== needle;
    var indexOf;

    if(!findNaN && typeof Array.prototype.indexOf === 'function') {
        indexOf = Array.prototype.indexOf;
    } else {
        indexOf = function(needle) {
            var i = -1, index = -1;

            for(i = 0; i < this.length; i++) {
                var item = this[i];

                if((findNaN && item !== item) || item === needle) {
                    index = i;
                    break;
                }
            }

            return index;
        };
    }

    return indexOf.call(this, needle) > -1;
};

Вы можете использовать его следующим образом:

var myArray = [0,1,2],
    needle = 1,
    index = contains.call(myArray, needle); // true

Проверка / использование CodePen

996
ответ дан 19 December 2019 в 20:16
поделиться

Учитывая реализацию indexOf для IE (как описано по «слепоте»):

Array.prototype.contains = function(obj) {
    return this.indexOf(obj) > -1;
};
17
ответ дан 19 December 2019 в 20:16
поделиться

Обычно для этого предназначен метод indexOf (). Вы бы сказали:

return arrValues.indexOf('Sam') > -1
875
ответ дан 19 December 2019 в 20:16
поделиться

jQuery имеет служебную функцию для этого:

$.inArray(value, array)

Возвращает индекс значения в массиве . Возвращает -1 , если массив не содержит значение .

См. Также Как проверить, включает ли массив объект в JavaScript?

990
ответ дан 19 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: